Hadoop:交换DataNode

Hadoop : swap DataNode & NameNode without losing any HDFS data

我有5台机器的集群:

  • 1个大NameNode
  • 4个标准DataNode

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

  • 1个标准NameNode
  • 3个标准DataNode
  • 1个大DataNode

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

非常感谢您


  • 将名称节点移动到的退役数据节点。
  • 停止集群。
  • 从当前名称节点创建dfs.name.dir的tar。
  • 将所有hadoop配置文件从当前NN复制到目标NN。
  • 通过修改core-site.xml替换目标名称节点的名称/ IP。
  • 恢复dfs.name.dir的压缩包。确保完整路径相同。
  • 现在,通过启动新的namenode和少一个datanode来启动集群。
  • 验证一切工作正常。
  • 通过将旧名称节点配置为datanode来将其添加为datanode。
  • 我建议先在两个节点上卸载然后再安装hadoop,这样以前的配置就不会造成任何问题。