踩坑:早已预料到的错误:java.net.ConnectException: Call From xxx to localhost:8020 failed on connection exceptio

踩坑:早已预料到的连接错误:java.net.ConnectException: Call From xxx to localhost:8020 failed on connection exception: java.net.ConnectException: Connection refused

标签(空格分隔): 踩坑


JAVA API 操作 HDFS出现连接错误:

java.net.ConnectException: Call From xxx to localhost:8020 failed on connection exception: java.net.ConnectException: Connection refused

先检查了 core-site.xml,确定了配置的是8020端口无误。

虚拟机ip是192.168.0.117,windows能ping通

那么下一步准备查看防火墙,centos如何查看防火墙呢:

service iptables status

但是这条命令根本没反应,再上网查了一下,需要在前面加上sudo。难道不用sudo的人,一直都在root下操作么!?

sudo service iptables status

然后就可以查看防火墙状态了,防火墙是开着的,那么我们先把防火墙关闭:

[japson@localhost ~]$ sudo service iptables status
iptables: Firewall is not running.

再去连接,还是有错误。

既然ip地址能ping通过,那么我把URI的localhost改成ip呢?

public static final String HDFS_PATH = "hdfs://192.168.0.117:8020";

结果还是不行。因为core-site.xml中的地址我也得进行相应的修改:

<configuration>
    <property>
        <value>hdfs://192.168.0.117:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/japson/app/tmp</value>
    </property>
</configuration>

之后,就成了。

扫描二维码关注公众号,回复: 1240418 查看本文章

注意

这里我没有使用主机名,如果要使用主机名需要:
1. 确保宿主机上即windows上修改了hosts文件,主机名对应那个ip
2. 修改虚拟机上的etc/hosts文件对应的主机名和ip关系
3. hadoop的core-site.xml中涉及到localhost的改为主机名或者ip都行

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

  1. java中的URI
  2. hadoop的core-site.xml

猜你喜欢

转载自blog.csdn.net/japson_iot/article/details/80519247