我有5台机器的集群:

  • 1个大NameNode
  • 4个标准DataNodes

  • 我想用DataNode更改当前的NameNode而不丢失存储在HDFS中的数据,因此我的集群可能变成:
  • 1个标准NameNode
  • 3个标准DataNodes
  • 1个大DataNode

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

    非常感谢你

    最佳答案

  • 撤消数据节点,namenode将被移动到该节点。
  • 停止集群。
  • 从当前namenode创建dfs.name.dir的tar。
  • 将所有hadoop配置文件从当前NN复制到目标NN。
  • 通过修改core-site.xml来替换目标名称节点的名称/ IP。
  • 恢复dfs.name.dir的压缩包。确保完整路径相同。
  • 现在,通过启动新的namenode和少一个datanode来启动集群。
  • 确认一切正常。
  • 通过将旧名称节点配置为datanode来将其添加为datanode。
  • 我建议先在两个节点上卸载然后再安装hadoop,以便先前的配置不会引起任何问题。
  • 关于hadoop - Hadoop:交换DataNode和NameNode而不丢失任何HDFS数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52180596/

    10-12 22:51