JAVA API 操作 HDFS出现连接错误:
java.net.ConnectException: Call From xxx to localhost:8020 failed on connection exception: java.net.ConnectException: Connection refused错误。
解决办法:
1、先检查了 core-site.xml,确定了配置的是端口无误。
2、检查虚拟机ip能不能ping通。
3、检查虚拟机防护墙是否开着。
public static final String HDFS_PATH = "hdfs://x.x.x.x:9000";
结果还是不行。
<configuration>
<property>
<value>hdfs://x.x.x.x:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/japson/app/tmp</value>
</property>
</configuration>
之后,就成了。
注意
这里我没有使用主机名,如果要使用主机名需要:
1. 确保宿主机上即windows上修改了hosts文件,主机名对应那个ip。
2. 修改虚拟机上的etc/hosts文件对应的主机名和ip关系。
3. hadoop的core-site.xml中涉及到localhost的改为主机名或者ip都行。
java中的URI
hadoop的core-site.xml