我已经在12个节点的群集中安装了HDFS。它部署在EC2(AWS)实例中。所有这些EC2实例都有2个网络接口-eth0
和eth1
。 eth1
具有静态IP地址,而eth0
具有的IP地址在重新启动实例时会更改。假设eth0
的IP地址是'ABC',而eth1
的IP地址是'XYZ'。在我的主机文件(/ etc / hosts)中,为所有节点FQDN和IP地址(eth1
的IP地址)输入了条目。由于某些原因,当DataNode尝试连接到NameNode时,它将使用eth0
的IP地址(在这种情况下为'ABC')。它显示以下错误,但失败。
LOGS中的错误如下:
块池初始化失败 BP-1423100917- name_node_host -1544213589860(数据节点Uuid 160d6133-54f1-4a29-a6f0-0e52c0c59708)服务 NAME_NODE_HOSTNAME .net / NAME_NODE_IP :8022数据节点由于无法解析主机名而拒绝与namenode通信 (ip = ABC,主机名= ABC):DatanodeRegistration(XYZ, datanodeUuid = 160d6133-54f1-4a29-a6f0-0e52c0c59708,infoPort = 50075, infoSecurePort = 0,ipcPort = 50020, storageInfo = lv = -56; cid = cluster8; nsid = 2080909946; c = 0)
我尝试了以下选项来解决此问题。但这没用。
在DataNode和NameNode中将属性dfs.datanode.dns.interface
设置为eth1
,然后重新启动HDFS服务。还尝试仅针对DataNode或NameNode更改它。 (hdfs-site.xml)
在数据节点和NameNode中将属性dfs.namenode.datanode.registration.ip-hostname-check
设置为'false',然后重新启动HDFS服务。还尝试仅针对DataNode或NameNode更改它。(hdfs-site.xml)
与该错误有关的大多数先前文章都指向上述参数。但这对我没有用。有没有人遇到过同样的问题?