hadoop namenode不在ips外部侦听

oo7oh9g9  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(333)

我有一个由3台机器组成的简单hadoop集群。一个主人和两个奴隶。他们都在运行我在那里下载的最新简约版centos。
我的所有计算机都有相同的主机文件:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.101  master
192.168.56.102  slave1
192.168.56.103  slave2

core-site.xml文件配置如下:(namenode应该侦听端口9000)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000/</value>
</property>
<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>
</configuration>

当从主机启动hdfs并检查datanodes/slave的日志时,我注意到datanodes无法连接到namenode。

Retrying connect to server: master/192.168.56.101:9000. Already tried 0 time(s).

在进一步检查之后,似乎只有尝试从namenode本身连接到端口9000时,才可以访问它。

[root@HadoopMaster conf]# sudo netstat -tulpn | grep :9000
tcp6       0      0 192.168.56.101:9000     :::*                    LISTEN      11055/java

正在尝试 telnet master 9000 仅从主主机成功。从设备出现以下错误:

[root@Slave1 logs]# telnet master 9000
Trying 192.168.56.101...
telnet: connect to address 192.168.56.101: No route to host

但恰恰相反,它们可以很好地连接到端口22

[root@Slave1 logs]# telnet master 22
Trying 192.168.56.101...
Connected to master.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1

所以这必须是一个ip绑定问题。我到处找了,找不到一个可行的答案。类似的问题,我解决了使用一个完全合格的域名中 core-site.xml 我没有成功。
顺便说一句,我还禁用了iptables,在那之前,我把我的主端口都打开了。没有成功。
如果你找到答案,我一定会送你一个美味的虚拟饼干;)

soat7uwm

soat7uwm1#

我刚刚意识到centos的默认防火墙不是iptables而是firewalld。正确配置防火墙后,我设法解决了我的问题!
为什么安装了iptables却没有使用,这是个谜。天哪,我更喜欢debian家。

p8h8hvxi

p8h8hvxi2#

如果您在vm virtualbox的几个示例中运行这些vm,这看起来很自然,即使它们在同一个网络上,它们也看不到彼此。
查看virtualbox手册以正确配置网络,也可以查看此答案

相关问题