本文共 2443 字,大约阅读时间需要 8 分钟。
以前都是在单机模式下搭建hadoop进行运作,今天试着在两台机器上搭建,就出现了一堆问题。现在汇总注意事项
我第一台机器上使用都用户名是hadoop,第二台使用都就是xuwei了,这样导致了很多问题。如果早知道必须使用相同都用户名,当时就不这么麻烦了。
在启动hadoop服务
./start-all.sh
之前,我们必须进行HDSF,使用如下命令
./hadoop namenode -format
如果不进行HDSF格式化的话,可能会出现没有namenode或者datanode的错误。
在master上启动hadoop服务,但是master节点上所有进程都正常启动,但是slave节点上有tasktracker,却没有了datanode。查看slave上的日志(保存在hadoop/logs/hadoop-hadoop-datanode-xuwei-laptop.log这个文件里面),从logs中我们发现了如下错误信息:
2011-10-10 10:02:28,447 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG: /************************************************************STARTUP_MSG: Starting DataNodeSTARTUP_MSG: host = xuwei-laptop/127.0.1.1STARTUP_MSG: args = []STARTUP_MSG: version = 0.20.1STARTUP_MSG: build = http://svn.apache.org/repos/asf/hadoop/common/tags/release-0.20.1-rc1 -r 810220; compiled by 'oom' on Tue Sep 1 20:55:56 UTC 2009************************************************************/2011-10-10 10:02:34,144 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/hadoop/program/tmp-hadoop/dfs/data: namenode namespaceID = 1911773165; datanode namespaceID = 1366308813 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.(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)2011-10-10 10:02:34,145 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: /************************************************************SHUTDOWN_MSG: Shutting down DataNode at xuwei-laptop/127.0.1.1************************************************************/
从中我们可以发现是因为临时文件目录中的内容出错。后来一想确实是我那slave机器跑过单机模式的hadoop,tmp-hadoop就是在那个时候进行格式化产生的。因此我们在这里删除tmp-hadoop,在master上重启hadoop服务。一切正常。
本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2011/10/08/2510827.html,如需转载请自行联系原作者