【问题标题】:Hadoop How to Decommision a DataNode and replace it with another machine?Hadoop 如何停用 DataNode 并用另一台机器替换它?
【发布时间】:2015-12-28 19:36:34
【问题描述】:

我正在为我的 5 节点 hadoop 集群使用 VM(1VM 有 Name Node,1VM 有 JobTracker/SecondaryNameNode/HMaster,三个 VM 有 DataNodes/TaskTrackers/HRegionServers/Zookeepers),它属于 Cloudera 发行版,我手动安装,而不是通过 Cloudera Manager。

编辑 - 每个包含 DataNode 的 VM 的磁盘空间大约已满 50-60%。我很高兴能在明天早上之前完成这项工作,但我可以在 24 小时内逃脱。

我必须返回其中一个 VM(特别是一个特定的 DataNode)并用另一个替换它(不要问为什么)。我购买了第二台虚拟机,可以随时开始安装。

这是我目前的策略:

  1. rsync DataNode 的数据目录到新节点,以及 zookeeper 的数据目录。
  2. rsync 所有配置文件(core-site.xml、hdfs-site.xml、mapred-site.xml、hbase-site.xml、zoo.cfg)
  3. 在 Stack Overflow 上提出这个问题

为什么是第三? NameNode 保存了存储在 HDFS 上的所有文件的所有块的位置的元数据。 HBase 元表指向具有 HFiles 数据的 RegionServers。 DataNode 上 Zookeeper 服务器的数据也是必不可少的。

如何指示 NameNode 和 HBase/Zookeeper 指向新采购的 VM 上的数据?还有什么我没有考虑的?

现在这实际上是一个开发环境,我可以使用 Pig 导出 HDFS 数据和 HBase 数据,清除所有 DataNode 和 Zookeeper 的数据目录,然后使用 Pig 导入数据。除了跛脚之外,我相信这对我来说是一个很好的锻炼。

【问题讨论】:

    标签: hadoop hbase hdfs apache-zookeeper sysadmin


    【解决方案1】:

    如果你只是在一个合理规模的集群中更换单台机器,你通常可以只关闭你想要退役的机器的 regionserver 等待重新分配区域,然后关闭 datanode 并等待“ Number of Under-Replicated Blocks”在 Hadoop NameNode UI 中降至零。然后,当您向集群添加新机器时,您可以运行 Hadoop balancer 工具来重新平衡数据块。然后使用 HBase shell 运行 HBase balancer 命令。这将重新平衡 HBase 区域。

    如果您要停用多个节点,您可能需要阅读有关 draining nodes 的信息。您还可以使用 hdfs-site.xml (dfs.hosts.exclude) 和 mapred-site.xml (mapreduce.jobtracker.hosts.exclude.filename) 中的节点排除项将节点标记为已停用。

    我发现 HBase 中的重新平衡区域相对较快,而且并不令人担忧。重新平衡 HDFS 块要花费更多时间,因此可能值得也可能不值得,具体取决于集群的大小和集群的满载程度。

    对于它的价值,我实际上并没有尝试手动将数据从一个节点复制到另一个节点,但我知道在节点退役后重新插入节点就可以了。 (例如,如果机器需要一些离线硬件维护。)鉴于此,如果您将退役机器替换为具有相同 DNS 和/或 IP 地址的新主机,我希望您的方式能够正常工作。它也可能只是按照您尝试的方式工作,但它似乎需要做更多的工作,并且只有在您尝试最小化集群配置不足的时间段时才会有用。

    【讨论】:

    • 嘿,b4hand。我启用并连接了我的新节点(DN 和 RS),然后关闭了旧节点上的 RS。那成功了。但是,我关闭了旧节点上的 DN,大约 24 小时后,我仍然有相同数量的复制不足的块。在我的 DN 的数据目录上发出 du -h /data | tail - 表明它比默认值有所增加,但仍然不到我其他 DN 数量的 1/10。有什么想法吗?
    • 你的块复制因子是多少?您的集群大小是否大于复制因子?您可以运行hdfs fsck / 来告诉您有关缺失块的更多信息。此外,您的名称节点是否在名称节点 UI 的“死节点”部分中显示禁用的 DN?
    猜你喜欢
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 2013-08-26
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多