Я установил HDFS в кластере из 12 узлов.Он развернут в экземплярах EC2 (AWS).Все эти экземпляры EC2 имеют 2 сетевых интерфейса - eth0
и eth1
.eth1
имеет статический IP-адрес, а eth0
имеет IP-адрес, который изменяется при перезагрузке экземпляров.Допустим, IP-адрес eth0
- это «ABC», а IP-адрес eth1
- «XYZ».В моем файле hosts (/ etc / hosts) я сделал записи для всех узлов FQDN и IP-адресов (IP-адрес eth1
).По какой-то причине, когда узлы данных пытаются подключиться к узлу имени, он использует IP-адрес eth0
(в данном случае это «ABC»).Это показывает ошибку ниже и терпит неудачу.
Ошибка в журналах приведена ниже:
Ошибка инициализации для пула блоков BP-1423100917- name_node_host -1544213589860 (Uuid Datanode 160d6133-54f1-4a29-a6f0-0e52c0c59708) служба для NAME_NODE_HOSTNAME .net / NAME_NODE_IP : 8022 Датоде отказано в связи с наменодом, так как не удается разрешить имя хоста (ip = ABC, имя хоста = ABC): регистрация данных DatanodeReid (XY)160d6133-54f1-4a29-a6f0-0e52c0c59708, infoPort = 50075, infoSecurePort = 0, ipcPort = 50020, storageInfo = lv = -56; cid = cluster8; nsid = 2080909946; c = 0)
Я попробовал ниже варианты, чтобы исправить эту проблему.Но это не сработало.
Установка свойства dfs.datanode.dns.interface
в eth1
в обоих DataNode и NameNode и перезапуск службы HDFS.Также попытался изменить его только для DataNode или NameNode.(hdfs-site.xml)
Установка для свойства dfs.namenode.datanode.registration.ip-hostname-check
значения 'false' в обоих узлах данных и NameNode и перезапуск службы HDFS.Также попытался изменить его только для DataNode или NameNode. (Hdfs-site.xml)
Большинство предыдущих сообщений, связанных с этой ошибкой, указывают на вышеупомянутые параметры.Но это не сработало для меня.Кто-нибудь сталкивался с такой же проблемой?