java - Hadoop namenode 不监听外部 IP

标签 java hadoop networking hdfs firewall

我有一个由 3 台机器组成的简单 hadoop 集群。一个主人,两个奴隶。他们都在运行我下载的最新极简版CentOS there .

我所有的机器都有相同的主机文件:

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>

当从 master 启动 hdfs 并检查 datanodes/slaves 的日志时 我注意到数据节点无法连接到名称节点 .
Retrying connect to server: master/192.168.56.101:9000. Already tried 0 time(s).

在进一步检查之后,似乎只有当我尝试从名称节点本身连接到它时才能访问端口 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 绑定(bind)问题 .
我到处寻找,找不到可行的答案。通过使用 core-site.xml 中的完全限定域名解决了与我类似的问题。我没有成功的文件。

顺便说一句,我还禁用了 iptables 并在此之前打开了我的所有主端口到我的从 IP。没有成功。

如果你找到答案,我肯定想送你一个美味的虚拟 cookies ;)

最佳答案

我刚刚意识到 CentOS 的默认防火墙不是 iptables 而是 firewalld。
正确配置此防火墙后,我设法解决了我的问题!

为什么安装了 iptables 却没有使用,这是一个谜。
男孩,我非常喜欢 Debian 家族。

关于java - Hadoop namenode 不监听外部 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42823254/

相关文章:

java - 如何从 JAVA 中的日期时间格式获取星期几?

mongodb - hadoop-mongodb 驱动程序和 mahout

c - 如何将套接字重置回阻塞模式(在我将其设置为非阻塞模式之后)?

hadoop - 错误消息 : "offset (0) + length (4) exceed the capacity of the array: 2" while fetching data from HBase

python - 如何使用scapy解码DHCP中继数据包的十六进制数据?

java - SSLEngine 并关闭

java - onErrorResume 运算符会忽略 flatMap 中抛出的异常

java - Android应用程序无法访问互联网

java - 生成文档的 Java 注释的生命周期是哪个?

hadoop - 使用 Teradata 连接器的 Teradata 到 Hive 表导入工具