Java操作Hadoop报java.net.ConnectException: Call From xxx to xxx.:9000 failed on connection exception错误

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、检查虚拟机防护墙是否开着。

 

以上步骤都没问题,还是不行,既然ip地址能ping通过,那么我把URI的localhost改成ip试试。

public static final String HDFS_PATH = "hdfs://x.x.x.x:9000";

结果还是不行。

4、修改core-site.xml中地址

core-site.xml中的地址我也得进行相应的修改:

<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都行。

我现在不想要麻烦,使用了ip地址。有一个问题就是ip地址变化了,那么就需要改变2个地方:

    java中的URI
    hadoop的core-site.xml
 

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值