本地eclipse idea 写的Hadoop的API和 spark程序不能访问云服务器中的数据
外网ip不能访问云服务器中的hdfs:直接在本地电脑eclipse上跑hadoop的API会出现,
如下bug:这是因为在hadoop内部是通过内网ip地址访问的。所以你的公网ip地址在这个不起作用!!!
修改你云服务器的hdfs-site.xml文件:
添加如下:(黄色配置一定要加)
<property>
<name>dfs.client.use.datanode.hostname</name>
<value>true</value>
</property>
<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
在编写hadoop API的时候。如果改了这些配置还是不行的话,就在代码中加上一句conf.set(“dfs.client.use.datanode.hostname”,”true”);
还有如果在idea中使用hdfs文件也会报错。同样的问题。出现入下bug
这个我直接在代码中设置也有问题。没起作用。
唯一的解决方案就是将配置hdfs-site.xml放入resource中,就能用了:
个人纳闷的地方就是,为什么我云服务器中明明加了这些配置,为什么跑代码的时候就没用用起来了???天坑!!!
云服务器要是像本地虚拟机那样方便就好了。