`
cloudeagle_bupt
  • 浏览: 536518 次
文章分类
社区版块
存档分类
最新评论

HADOOP报错Incompatible namespaceIDs

 
阅读更多
贱,将Namenode和Datanode都做了一次single node demo,datanode上的hdfs的dictionary和namenode上的clusterID不一致,就一直无法启动datanode的hdfs
在网上找到了解决的办法

http://blog.csdn.net/wh62592855/archive/2010/07/21/5752199.aspx


今早一来,突然发现使用-put命令往HDFS里传数据传不上去了,抱一大堆错误,然后我使用bin/hadoop dfsadmin -report查看系统状态

admin@adw1:/home/admin/joe.wangh/hadoop-0.19.2>bin/hadoop<wbr>dfsadmin -report<br> Configured Capacity: 0 (0 KB)<br> Present Capacity: 0 (0 KB)<br> DFS Remaining: 0 (0 KB)<br> DFS Used: 0 (0 KB)<br> DFS Used%: ?%</wbr>

-------------------------------------------------
Datanodes available: 0 (0 total, 0 dead)

使用bin/stop-all.sh关闭HADOOP

admin@adw1:/home/admin/joe.wangh/hadoop-0.19.2>bin/stop-all.sh
stopping jobtracker
172.16.197.192: stopping tasktracker
172.16.197.193: stopping tasktracker
stopping namenode
172.16.197.193: no datanode to stop
172.16.197.192: no datanode to stop<wbr><br> 172.16.197.191: stopping secondarynamenode</wbr>

哦,看到了吧,发现datanode前面并没有启动起来。去DATANODE上查看一下日志

admin@adw2:/home/admin/joe.wangh/hadoop-0.19.2/logs>vi<wbr>hadoop-admin-datanode-adw2.hst.ali.dw.alidc.net.log</wbr>

************************************************************/
2010-07-21 10:12:11,987 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/admin/joe.wangh/hadoop/data/dfs.data.dir: namenode namespaceID = 898136669; datanode namespaceID = 2127444065<wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:233)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:148)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:288)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>at org.apache.hadoop.hdfs.server.datanode.DataNode.&lt;init&gt;(DataNode.java:206)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1239)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1194)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1202)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1324)<br> ......</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

错误提示namespaceIDs不一致。

下面给出两种解决办法,我使用的是第二种。


Workaround 1: Start from scratch

I can testify that the following steps solve this error, but the side effects won't make you happy (me neither). The crude workaround I have found is to:

1.<wbr><wbr><wbr><wbr><span></span>stop the cluster</wbr></wbr></wbr></wbr>

2.<wbr><wbr><wbr><wbr><span></span>delete the data directory on the problematic datanode: the directory is specified by dfs.data.dir in conf/hdfs-site.xml; if you followed this tutorial, the relevant directory is /usr/local/hadoop-datastore/hadoop-hadoop/dfs/data</wbr></wbr></wbr></wbr>

3.<wbr><wbr><wbr><wbr><span></span>reformat the namenode (NOTE: all HDFS data is lost during this process!)</wbr></wbr></wbr></wbr>

4.<wbr><wbr><wbr><wbr><span></span>restart the cluster</wbr></wbr></wbr></wbr>

When deleting all the HDFS data and starting from scratch does not sound like a good idea (it might be ok during the initial setup/testing), you might give the second approach a try.

Workaround 2: Updating namespaceID of problematic datanodes

Big thanks to Jared Stehler for the following suggestion. I have not tested it myself yet, but feel free to try it out and send me your feedback. This workaround is "minimally invasive" as you only have to edit one file on the problematic datanodes:

1.<wbr><wbr><wbr><wbr><span></span>stop the datanode</wbr></wbr></wbr></wbr>

2.<wbr><wbr><wbr><wbr><span></span>edit the value of namespaceID in &lt;dfs.data.dir&gt;/current/VERSION to match the value of the current namenode</wbr></wbr></wbr></wbr>

3.<wbr><wbr><wbr><wbr><span></span>restart the datanode</wbr></wbr></wbr></wbr>

If you followed the instructions in my tutorials, the full path of the relevant file is /usr/local/hadoop-datastore/hadoop-hadoop/dfs/data/current/VERSION (background: dfs.data.dir is by default set to ${hadoop.tmp.dir}/dfs/data, and we set hadoop.tmp.dir to /usr/local/hadoop-datastore/hadoop-hadoop).

If you wonder how the contents of VERSION look like, here's one of mine:

#contents of <dfs.data.dir>/current/VERSION

namespaceID=393514426

storageID=DS-1706792599-10.10.10.1-50010-1204306713481

cTime=1215607609074

storageType=DATA_NODE

layoutVersion=-13

<wbr></wbr>

原因:每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有晴空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空tmp一下的所有目录.

分享到:
评论

相关推荐

    CDH集群大数据hadoop报错解决办法及思路整理-绝对干货

    CDH集群大数据hadoop报错解决办法及思路整理,主要解决大数据在运行过程中所遇到的问题,相关解决办法都是实践验证过。

    mac hadoop报错native 需要的包

    mac 版hadoop3.2.4或其他版本 Unable to load native-hadoop library 缺失文件

    windows下Hadoop报错null\bin\winutils.exe-附件资源

    windows下Hadoop报错null\bin\winutils.exe-附件资源

    Logstash6整合Hadoop-报错与解决方案.docx

    Logstash6整合Hadoop-报错与解决方案.docx

    Spark/Hadoop开发缺失插件-winutils.exe

    本地开发Spark/Hadoop报错“ERROR Shell: Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.” ...

    hadoop3.0.0-windows-bin.zip

    包含winutils 注意版本 已经成功运行 之后配置环境变量 解决 Hadoop报错:Failed to locate the winutils binary in the hadoop binary path

    hadoop2.4.1的64位redhat的native包,解决hadoop 安装报错

    hadoop2.4.1的64位redhat的native包,用java7编译的

    解决hadoop本地运行报错

    org.apache.hadoop.io.nativeio.NativeIO.java解决办法 将org放入项目的工程目录下 本地运行MR必备的源码包,本地运行MR必备的源码包,本地运行MR必备的源码包,

    winutil和hadoopdll.zip

    解决window运行hadoop报错Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0的问题

    hadoop.dll

    添加到C://System32解决chmod 0700问题; 有尽可下载,只要1积分; 今天上课hadoop报错,老师给的文件,像要一些积分

    hadoop-3.1.0-winUtils.rar

    hadoop3.1.0 winUtils 。如果本机操作系统是 Windows,在程序中使用了 Hadoop 相关的东西,比如写入文件到HDFS,则会遇到如下异常:could not locate executable null\bin\winutils.exe ,使用这个包,设置一个 ...

    windows64位hadoop2.7.7版本hadoop.dll

    windows下做hadoop入门,会出现hdfs报错,2.7.7版本兼容 windows下做hadoop入门,会出现hdfs报错,2.7.7版本兼容 windows下做hadoop入门,会出现hdfs报错,2.7.7版本兼容

    hadoop常见错误以及处理方法详解

    1、hadoop-root-datanode-master.log 中有如下错误:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in导致datanode启动不了。原因:每次namenode format...

    hadoop2.7.3 hadoop.dll

    在windows环境下开发hadoop时,需要配置HADOOP_HOME环境变量,变量值D:\hadoop-common-2.7.3-bin-master,并在Path追加%HADOOP_HOME%\bin,有可能出现如下错误: org.apache.hadoop.io.nativeio.NativeIO$Windows....

    hadoop1.0 Failed to set permissions of path 解决方案

    hadoop 启动时 TaskTracker无法启动 ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: \tmp\hadoop-admin \mapred\...

    eclipse连接hadoop的操作文档

    是windows下eclipse连接hadoop的操作文档,注意系统环境变量一定要配置

    《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf

    《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf...

    Hadoop下载 hadoop-2.9.2.tar.gz

    Hadoop 是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由 Yahoo 的工程师 Doug Cutting 和 Mike Cafarella Hadoop 是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由 Yahoo...

    hadoop-lzo-master

    1.安装 Hadoop-gpl-compression 1.1 wget http://hadoop-gpl-compression.apache-extras.org.codespot.com/files/hadoop-gpl-compression-0.1.0-rc0.tar.gz 1.2 mv hadoop-gpl-compression-0.1.0/lib/native/Linux-...

Global site tag (gtag.js) - Google Analytics