【问题标题】:What is the use of VERSION file for hadoop.tmp.dirhadoop.tmp.dir的VERSION文件有什么用
【发布时间】:2019-06-07 00:46:22
【问题描述】:

最近我格式化了namenode,在启动hadoop守护进程时datanode失败并给出如下错误

2019-01-11 10:39:15,449 警告 org.apache.hadoop.hdfs.server.common.Storage:添加存储失败 目录[磁盘]文件:/app/hadoop/tmp/dfs/data/java.io.IOException: /app/hadoop/tmp/dfs/data 中的集群 ID 不兼容:namenode 集群 ID = CID-76c39119-061a-4ecf-9de1-3a6610ca57dd;数据节点 clusterID = CID-90359d7f-b1a5-431e-8035-bc4b9e2ea8b9

作为解决方案,我删除了 tmp 并再次创建了它的工作文件,还将 namenode CID 复制到它开始工作的版本文件中的 datanode CID。

在查看我的备份时,我可以看到 datanode 和 namenode 的 CID 不同,并且之前可以正常工作。

有人可以提供一些详细信息,每个值代表什么,两个 CID 需要相同还是不同?

  1. storageID=DS-7628c4d7-a508-406c-94fa-9b00f45b4f42
  2. clusterID=CID-73f3a584-4a8a-4260-856c-5a2062b6ae61
  3. cTime=0
  4. datanodeUuid=40834363-2025-4e9a-bb1e-e489bf13cad9
  5. storageType=DATA_NODE
  6. layoutVersion=-57

  7. namespaceID=1181871748

  8. clusterID=CID-73f3a584-4a8a-4260-856c-5a2062b6ae61
  9. cTime=1547187830726
  10. storageType=NAME_NODE
  11. blockpoolID=BP-2120424576-127.0.1.1-1547187830726
  12. layoutVersion=-63

【问题讨论】:

  • 我在不同的门户网站上检查过这个:link,答案是集群 ID 在数据节点和名称节点中必须相同

标签: hadoop hdfs hadoop2


【解决方案1】:

datanode 和 namenode 中的 Cluster-ID 必须相同 或者删除<dfs.datanode.data.dir> / 目录和<dfs.namenode.name.dir> / 目录并格式化名称节点以使用集群 ID 的新副本启动 hdfs 集群。您可以参考hadoop tutorial site了解更多详情

【讨论】:

    【解决方案2】:

    主版本文件中存在的值充当数据节点的身份验证。只有有效的数据节点才能加入集群。当 datanode 加入集群时,它只能通过 VERSION 文件中的值进行身份验证。希望这清楚是您的疑问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 2012-12-09
      • 2010-12-31
      • 2022-10-13
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      相关资源
      最近更新 更多