Hadoop:在不丢失任何 HDFS 数据的情况下交换 DataNode 和 NameNode

Hadoop : swap DataNode & NameNode without losing any HDFS data

我有一个包含 5 台机器的集群:

我想用 DataNode 更改我当前的 NameNode 而不会丢失存储在 HDFS 中的数据,因此我的集群可以变成:

有人知道这样做的简单方法吗?

非常感谢

  1. 名称节点将被移动到的退役数据节点。
  2. 停止集群。
  3. 从当前名称节点创建 dfs.name.dir 的 tar。
  4. 将所有 hadoop 配置文件从当前 NN 复制到 tar获取 NN。
  5. 通过修改core-site.xml替换target namenode的name/ip.
  6. 恢复 tar 球 dfs.name.dir。确保完整路径相同。
  7. 现在通过 star 新的 namenode 和少一个 datanode 来 start 集群。
  8. 确认一切正常。
  9. 通过将旧名称节点配置为数据节点,将其添加为数据节点。
  10. 我建议在两个节点上卸载然后安装hadoop,这样之前的配置就不会造成任何问题。