【问题标题】:data node namespaceID issue数据节点 namespaceID 问题
【发布时间】:2014-11-21 17:06:41
【问题描述】:

我已经为一位用户成功安装了 HADOOP。当我为另一个用户安装 HADOOP 时,数据节点丢失了。数据节点的日志文件显示:

2014-11-21 06:28:30,774 警告 org.apache.hadoop.metrics2.impl.MetricsSystemImpl:源名称 ugi 已经存在! 2014-11-21 06:28:32,161 错误 org.apache.hadoop.hdfs.server.datanode.DataNode:java.io.IOException: /home/test/work/hadoopdata/dfs/data 中的命名空间ID 不兼容: 名称节点命名空间ID = 1488453240;数据节点命名空间ID = 2050828596

一种解决方案是清除“dfs”目录,然后再次运行 HADOOP。但是如何用另一种方法解决这个问题,即解析命名空间ID。我在网上搜索但没有找到任何明确的解决方案。

我的操作系统是 Ubuntu 14.04

【问题讨论】:

标签: java linux hadoop


【解决方案1】:

如果您单独格式化名称节点,通常会发生此错误。如果名称节点被格式化,则名称节点中的元数据信息将被清除,并且将使用新的名称空间 id 创建新的元数据文件。因此,此 ID 与数据节点中的名称空间 ID 不匹配。解决方案是

编辑/home/test/work/hadoopdata/dfs/data/current/VERSION中数据节点的命名空间id,与/home/test/work/hadoopdata/dfs/name/中name节点的命名空间id相同当前/版本。

如果您使用上述解决方案,hadoop 将正常运行,但您无法查看旧文件,因为一旦格式化,hadoop 就会丢失有关这些文件的这些信息。

另一种方法是删除dfs文件夹和格式名称节点,启动hadoop

但您会丢失全部数据。

如果您有 dfs/name 文件夹的备份,请将其替换为当前文件夹。

我没有尝试最后一个解决方案,但它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多