`
447214075
  • 浏览: 77651 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hadoop 往dfs上传文件时报错

 
阅读更多
在hadoop重新format namenode后在hdfs上创建文件夹没有问题,但是就所不能上传文件。上传的文件也只有文件名,文件内容为空。并且报could only be replicated to 0nodes ,instead of 1。查看logs中的datanode日志,发现如下错误:
************************************************************/
2014-10-10 22:47:39,595 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /usr/local/hadoop-0.20.2/data: namenode namespaceID = 1720336629; datanode namespaceID = 580327193
at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:233)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:148)
at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:298)
at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:216)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1283)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1238)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1246)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1368)

2014-10-10 22:47:39,596 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:
/************************************************************


大概意思就是namenode的namespaceIDS与datanode的namespaceIDS不同,产生这种结果的原因是在namenode format时产生了一个新的nameSpaceId ,并将这个id写到来namenode中,但是datanode中的namespaceIDS还是老的id,当你在往hdfs上写数据时,namenode找不到datanode(datanode上的namespaceIDS都与namenode中的不同)

解决方法:
方法1:namenode的namespaceIDS存放位置:在hdfs-site.xml文件中配置的dfs.name.dir路径下/current/VERSION文件中。datanode的namespaceIDS存放位置,dfs.data.dirl路径下/current/VERSION文件中,将namenode的spaceIDS拷贝到datanode中。重新启动datanode就ok了。
方法2:删除dfs.data.dir路径下的文件,停止hadoop服务,format namenode,启动hadoop服务,ok问题解决。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics