您现在的位置是:首页 > 文章详情

惭入佳境之布置双节点DATANODE及错误解决

日期:2013-04-09点击:577

先流一下口水~~~~

传说中YAHOO用于HADOOP的机房:

推荐安装指南:

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/

其布置多节点的思路是:

先将第一个布置好的SINGLE节点方案弄好。

然后,将第一个节点的东东复制到另一个节点。

再将第二个节点降成DATANODE节点,而第一个节点为NAMENODE节点。

这样,就很好的实现了节点扩展。

但。。。。其实,在会产生一个小小的问题,我没有弄明白:

那是否需要重新FORMAT整个HDFS系统,还是说整个HADOOP方案在节点增加之后,啥都不用动?

因为我试着按指南重新格式化了HDFS,结果,所有的DATANODE无法正常启动了。

出错信息为:

2013-04-11 05:46:48,849 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /app/hadoop/tmp/dfs/data: namenode namespaceID = 966713409; datanode namespaceID = 1353306250

at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:232)

at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:147)

at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:399)

at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:309)

at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1651)

at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1590)

at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1608)

at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1734)

at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1751)

明显的,是因为格式化了HDFS两次所致。在作第一个节点时namespaceIDs并没有消失,然后,又重新弄了一次。

解决方案是将两节点的app/hadoop/tmp/下的文件全DEL之后,重新格式化一次。就OK了。

~~~~~~~~~~~

网上说的,http://stackoverflow.com/questions/3425688/why-does-the-hadoop-incompatible-namespaceids-issue-happen

Namenode generates new namespaceID every time you format HDFS. I think this is possibly to differentiate current version and previous version. You can always rollback to previous version if something is not proper which may not be possible if namespaceID is not unique for every formatted instance.

NamespaceID also connects namenode and datanodes. Datanodes bind themselves to namenode through namespaceID

每次FORMAT都会产生一个新的NAMESPACEID。

看来。。。。在第一次格式化之后,以后的节点可以直接使用?

 

原文链接:https://yq.aliyun.com/articles/235412
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章