码迷,mamicode.com
首页 > Web开发 > 详细

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Incompatible namespaceIDs

时间:2015-06-11 01:49:28      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:


用三台centos操作系统的机器搭建了一个hadoop的分布式集群。启动服务后失败,查看datanode的日志,提示错误:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /var/lib/hadoop-0.20/cache/hdfs/dfs/data: namenode namespaceID = 240012870; datanode namespaceID = 1462711424 .

  问题:Namenode上namespaceID与datanode上namespaceID不一致。

  问题产生原因: 每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,所以造成namenode节点上的namespaceID与 datanode节点上的namespaceID不一致。启动失败。

  解决办法:参考该网址 http://blog.csdn.net/wh62592855/archive/2010/07/21/5752199.aspx  给出两种解决方法,我们使用的是第一种解决方法:即:

  (1)停掉集群服务

  (2)在出问题的datanode节点上删除data 目录,data目录即是在hdfs-site.xml文件中配置的dfs.data.dir目录,本机器上那个是/var/lib/hadoop- 0.20/cache/hdfs/dfs/data/ (注:我们当时在所有的datanode和namenode节点上均执行了该步骤。以防删掉后不成功,可以先把data目录保存一个副本).

  (3)格式化namenode.

  (4)重新启动集群。

  问题解决。

 

  这种方法带来的一个副作用即是,hdfs上的所有数据丢失。如果hdfs上存放有重要数据的时候,不建议采用该方法,可以尝试提供的网址中的第二种方法。

  转http://blog.csdn.net/jokes000/article/details/7704986

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Incompatible namespaceIDs

标签:

原文地址:http://www.cnblogs.com/shiguotao-com/p/4567905.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!