1.hadoop2.7.7版本
2报错截图
3.没有出现挂datanode的问题[图片]

4.可以从web端正常访问和下载
请求namenode返回datanode的内网ip,通过修改本地 hosts 文件,把 namenode、datanode 的外网 IP 和 hostname 的映射关系加进去(前提是得有外网IP)
然后在代码中设置:
Configuration conf = new Configuration();
conf.set("dfs.client.use.datanode.hostname", "true");
就可以了