Hadoop:有 0 个数据节点 运行,没有节点且无法连接到名称节点
Hadoop: There are 0 datanodes running and no nodes & cannot connect to namenode
我在设置 Hadoop 时遇到问题。我的设置包括一个 nameNode VM 和两个连接到同一网络的独立物理数据节点。
IP配置:
- 192.168.118.212 namenode-1
- 192.168.118.217 数据节点-1
- 192.168.118.216 datanode-2
我一直收到错误,有 0 个数据节点 运行,但是当我在我的 dataNode-1 机器或 dataNode-2 机器上执行 JPS 时,它显示为 运行。
我的 nameNode 日志显示:
File /user/hadoop/.bashrc_COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s)
are excluded in this operation.
我的 dataNode-1 机器上的日志告诉我它无法连接到 nameNode。
WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: namenode-1/192.168.118.212:9000
唯一奇怪的是它不能连接,虽然它可以启动它?我也可以毫无问题地在它们之间进行 SSH。
所以我最好的猜测是我错误地配置了其中一个配置文件,尽管我在这里检查了其他问题并且它们似乎是正确的。
核心-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://namenode-1:9000/</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop_data/hdfs/datanode</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop_data/hdfs/namenode</value>
<final>true</final>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.job.tracker</name>
<value>namenode-1:9001</value>
</property>
</configuration>
问题可能出在 fs.default.name。尝试将 ip 地址设为 fs.default.name。并检查您的 /etc/hosts 配置是否指向正确的 IP 地址。这很可能是正确的,因为您的数据节点计算出了 IP 地址。
也可能是端口号的问题!试试 8020 或 50070 而不是 9000,看看会发生什么。
问题出在防火墙上。
你可以通过 运行 systemctl stop firewalld.service
来阻止它
我在这里找到了答案:
我在设置 Hadoop 时遇到问题。我的设置包括一个 nameNode VM 和两个连接到同一网络的独立物理数据节点。
IP配置:
- 192.168.118.212 namenode-1
- 192.168.118.217 数据节点-1
- 192.168.118.216 datanode-2
我一直收到错误,有 0 个数据节点 运行,但是当我在我的 dataNode-1 机器或 dataNode-2 机器上执行 JPS 时,它显示为 运行。 我的 nameNode 日志显示:
File /user/hadoop/.bashrc_COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.
我的 dataNode-1 机器上的日志告诉我它无法连接到 nameNode。
WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: namenode-1/192.168.118.212:9000
唯一奇怪的是它不能连接,虽然它可以启动它?我也可以毫无问题地在它们之间进行 SSH。
所以我最好的猜测是我错误地配置了其中一个配置文件,尽管我在这里检查了其他问题并且它们似乎是正确的。
核心-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://namenode-1:9000/</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop_data/hdfs/datanode</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop_data/hdfs/namenode</value>
<final>true</final>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.job.tracker</name>
<value>namenode-1:9001</value>
</property>
</configuration>
问题可能出在 fs.default.name。尝试将 ip 地址设为 fs.default.name。并检查您的 /etc/hosts 配置是否指向正确的 IP 地址。这很可能是正确的,因为您的数据节点计算出了 IP 地址。
也可能是端口号的问题!试试 8020 或 50070 而不是 9000,看看会发生什么。
问题出在防火墙上。
你可以通过 运行 systemctl stop firewalld.service
我在这里找到了答案: