hadoop中某些数据节点的IP映射错误

Posted

技术标签:

【中文标题】hadoop中某些数据节点的IP映射错误【英文标题】:Wrong IP mapping on some data nodes in hadoop 【发布时间】:2020-03-27 18:25:14 【问题描述】:

我在使用 /etc/hosts 的本地域配置的 7 个节点上进行了 hadoop 设置。 看起来是这样的

1.2.3.4 hadoop-master
1.2.3.5 hadoop-slave-1
1.2.3.6 hadoop-slave-2
1.2.3.7 hadoop-slave-3
1.2.3.8 hadoop-slave-4
1.2.3.9 hadoop-slave-5
1.2.3.10 hadoop-slave-6

现在的问题是,在某些节​​点上,hadoop-slave-1 的映射错误,即某些节点将hadoop-slave-1 映射到1.2.3.12 而不是1.2.3.4。 Namenode 具有正确的映射,因此数据节点在 namenode UI 中显示良好。

问题是,只更改/etc/hosts 文件并启动服务会好吗? 我认为它可能会破坏与hadoop-slave-1 节点相关的一些特定块。

我能想到两种方法来解决这个问题:

    修复损坏节点中的 /etc/hosts 文件并重新启动服务。但我不确定这是否会损坏块。这个假设准确吗?

    我们可以暂时从集群中移除这台服务器 hadoop-slave-1 并重新平衡 Hadoop 集群以在剩余的 6 个节点之间分配全部数据,然后再次将服务器重新添加到集群中并重新平衡数据到 7 个节点。 但是这样做的问题是,集群中包含的数据非常大,可能会产生问题,并且重新平衡数据将是一项繁重的工作,会对名称节点服务器造成压力,并可能导致堆问题。

在这种情况下还有其他解决方案吗? 另外,您建议使用哪种工具或实用程序将数据复制到另一个 hadoop 集群?

帮助非常感谢!

【问题讨论】:

【参考方案1】:

一般来说,如果您有一个功能正常的 DNS 服务器(大多数路由器都是),则不建议使用 /etc/hosts

比如在我的环境下,我可以ping namenode.lan


我认为选项 2 是最安全的选择。 hdfs -rebalancer 工作正常。

并可能导致堆问题

然后停止namenode,增加堆,然后重新启动它。当您使用它时,请设置 NameNode HA,这样您就不会停机。


注意:master/slave 主机名实际上不是描述性的。 HDFS 和 YARN 以及 Hive 和 HBase 和 Sparkall 中的每一个都有带有主服务的服务器-客户端架构,它们不应该位于一台机器上。

【讨论】:

以上是关于hadoop中某些数据节点的IP映射错误的主要内容,如果未能解决你的问题,请参考以下文章

初识Hadoop

我们如何仅从hdfs联合中的一个名称空间中排除某些数据节点?

这些大数据Hadoop面试题你有遇到过吗?你是怎么解决的!

求助Hadoop映射关系

HDFS服役新数据节点和退役旧节点步骤

大数据Hadoop集群的扩容及缩容(动态添加删除节点)