Apache 如何将HDFS namenode移动到新主机

Apache 如何将HDFS namenode移动到新主机,apache,hadoop,hdfs,Apache,Hadoop,Hdfs,将主Hadoop DFS namenode从一台主机移动到另一台主机的正确步骤是什么 我在Ubuntu14.04.3 LTS上使用了hadoop的2.7.1版(没有纱线) 完成的步骤: 将整个hadoop目录复制到新主机 在$hadoop\u home/etc/hadoop/master中设置新主机 更新了$hadoop_home/etc/hadoop/core-site.xml中的fs.default.name标记 使用旧namenode的ClusterID格式化新namenode:$had

将主Hadoop DFS namenode从一台主机移动到另一台主机的正确步骤是什么

我在Ubuntu14.04.3 LTS上使用了hadoop的2.7.1版(没有纱线)

完成的步骤:

  • 将整个hadoop目录复制到新主机
  • 在$hadoop\u home/etc/hadoop/master中设置新主机
  • 更新了$hadoop_home/etc/hadoop/core-site.xml中的fs.default.name标记
  • 使用旧namenode的ClusterID格式化新namenode:$hadoop\u home//bin/hadoop namenode-format-custerId$CLUSTER\u ID(我从配置中删除了从属服务器,只是为了确保没有从属服务器受到影响;这可能是个问题?)
问题是,由于clusterid不匹配,datanodes仍然没有出现:

2016-03-30 16:20:28,718 WARN org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException: Incompatible clusterIDs in /storage/data: namenode clusterID = CID-c19c691d-10da-4449-a7b6-c953465ce237; datanode clusterID = CID-af87cb62-d806-41d6-9638-e9e559dd3ed7
2016-03-30 16:20:28,718 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to XXXXXXXXXXXXXX. Exiting.
java.io.IOException: All specified directories are failed to load.
2016-03-30 16:20:28718警告org.apache.hadoop.hdfs.server.common.Storage:java.io.IOException:/Storage/data中不兼容的clusterID:namenode clusterID=CID-c19c691d-10da-4449-a7b6-c953465ce237;数据节点群集ID=CID-af87cb62-d806-41d6-9638-e9e559dd3ed7
2016-03-30 16:20:28718致命org.apache.hadoop.hdfs.server.datanode.datanode:xxxxxxxxxxxx的块池(datanode Uuid未分配)服务初始化失败。退出。
java.io.IOException:无法加载所有指定的目录。
有什么建议吗?
我也必须添加区块池ID吗?

因此我最终设法将其移动

  • 将正在运行的HDFS设置为安全模式: bin/hadoop dfsadmin-安全模式输入
  • TarBall dfs.name.dir下的完整目录
  • 将TarBall移动到新的namenode并提取内容
  • 将core-site.xml和master更改为新节点的主机名
  • 启动并离开安全模式: bin/hadoop dfsadmin-安全模式离开

对于
$HADOOP\u HOME
和checkpoint目录,
rsync
ing对我来说也很好,而不是
tar
ing。