我正在尝试设置HDFS& Cloudera Manager通过Cloudera Manager API。但是我被困在一个特定的位置:
我设置了所有HDFS角色,但NameNode拒绝与数据节点通信。 DataNode日志中的相关错误:
Initialization failed for Block pool BP-1653676587-172.168.215.10-1435054001015 (Datanode Uuid null) service to master.adastragrp.com/172.168.215.10:8022 Datanode denied communication with namenode because the host is not in the include-list: DatanodeRegistration(172.168.215.11, datanodeUuid=1a114e5d-2243-442f-8603-8905b988bea7, infoPort=50075, ipcPort=50020, storageInfo=lv=-56;cid=cluster4;nsid=103396489;c=0)
at org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.registerDatanode(DatanodeManager.java:917)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.registerDatanode(FSNamesystem.java:5085)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.registerDatanode(NameNodeRpcServer.java:1140)
at
我的DNS是通过hosts文件配置的,所以我认为以下答案适用并尝试解决方案但没有成功: https://stackoverflow.com/a/29598059/1319284
但是,据我所知,我有另一个基本相同配置的小集群,它正在运行。 DNS也是通过/ etc / hosts配置的,但是我在这里通过Cloudera Manager GUI而不是API来设置集群。
之后我终于找到了正在运行的NameNode进程的配置目录,并在那里找到了dfs_hosts_include文件。打开它显示只包含127.0.0.1。在工作集群上,所有节点都包含在该文件中。我在topology.map中找到了类似的怪异:
<?xml version="1.0" encoding="UTF-8"?>
<!--Autogenerated by Cloudera Manager-->
<topology>
<node name="master.adastragrp.com" rack="/default"/>
<node name="127.0.0.1" rack="/default"/>
<node name="slave.adastragrp.com" rack="/default"/>
<node name="127.0.0.1" rack="/default"/>
</topology>
......看起来并不合适。 同样,在工作集群上,IP也是预期的。
我不仅不知道出了什么问题,我也不知道如何影响这些文件,因为它们都是由Cloudera Manager自动生成的。有没有人见过这个,可以在这里提供指导?
答案 0 :(得分:0)
我终于找到了我遇到问题的地方。问题出在/etc/cloudera-scm-agent/config.ini
我使用模板生成了此文件,最后以
结束listening_ip=127.0.0.1
cloudera-cm-agent愉快地向服务器报告。有关详细信息,请参阅问题Salt changing /etc/hosts, but still caching old one?