dfs_hosts_allow 在 Cloudera Manager 中

dfs_hosts_allow in Cloudera Manager

我正在尝试通过 Cloudera Manager API 设置 HDFS 和 Cloudera Manager。但是我被困在一个特定的点上:

我设置了所有 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 文件配置的,所以我认为以下答案适用并尝试了该解决方案但没有成功:

但是,据我所知,我还有另一个配置基本相同的小型集群,它正在运行。 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 自动生成的。有没有人以前见过这个并可以在这里提供指导?

终于找到问题所在了。问题出在 /etc/cloudera-scm-agent/config.ini

我用模板生成了这个文件,结果是

listening_ip=127.0.0.1

cloudera-cm-agent 愉快地向服务器报告。有关详细信息,请参阅问题