我正在尝试通过clouderamanagerapi设置hdfs和cloudera管理器。然而,我被困在一个特定的点:
我设置了所有hdfs角色,但是namenode拒绝与数据节点通信。数据节点日志中的相关错误:
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\u hosts\u 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自动生成的。有没有人见过这个,可以在这里提供指导?
1条答案
按热度按时间ha5z0ras1#
我终于找到了问题所在。问题出在/etc/cloudera scm agent/config.ini中
我用模板生成了这个文件,结果
cloudera cm代理很高兴地向服务器报告了这一点。有关更多信息,请参阅问题salt changing/etc/hosts,but still caching old one?