使用伪分布式搭建hadoop的时候 在格式化dfs的时候报错 提示NameNode出错 求大神帮助 20
1. 环境描述:
虚拟机7.1.4,Ubuntu 10.10,伪分布式安装Hadoop。
2. 问题描述:
多次格式化文件系统时:
$ bin/hadoop namenode -format
会出现datanode无法启动。
3. 问题产生原因:
执行文件系统格式化时,会在namenode数据文件夹(即配置文件中dfs.name.dir在本地系统的路径)中保存一个current/VERSION文件,记录namespaceID,标识了所格式化的namenode的版本。如果我们频繁的格式化namenode,那么datanode中保存(即配置文件中dfs.data.dir在本地系统的路径)的current/VERSION文件只是你第一次格式化时保存的namenode的ID,因此就会造成datanode与namenode之间的id不一致。
4. datanode启动日志:
/home/xsj/hadoop/hadoop-0.20.2/logs/hadoop-xsj-datanode-xsj-virtual-machine.log.XXXX-XX-XX
查看日志发现:
************************************************************/
2012-05-28 17:40:59,973 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/xsj/hadoop/hadoop-0.20.2/hdfs/data: namenode namespaceID = 1525353449; datanode namespaceID = 1686950792
5. 解决方案:
把配置文件中dfs.data.dir在本地系统的路径下的current/VERSION文件中的namespaceID改为与dfs.name.dir在本地系统的路径下的current/VERSION文件中的namespaceID一样,例如:
dfs.data.dir为/home/xsj/hadoop/hadoop-0.20.2/hdfs/data
dfs.name.dir为/home/xsj/hadoop/hadoop-0.20.2/hdfs/name
打开/home/xsj/hadoop/hadoop-0.20.2/hdfs/name/current/VERSION文件:
#Wed May 30 09:51:09 CST 2012
namespaceID=1525353449
cTime=0
storageType=NAME_NODE
layoutVersion=-18
打开/home/xsj/hadoop/hadoop-0.20.2/hdfs/data/current/VERSION文件:
#Thu May 24 17:23:11 CST 2012
namespaceID=1686950792
storageID=DS-1689019725-127.0.1.1-50010-1337851391704
cTime=0
storageType=DATA_NODE
layoutVersion=-18
修改为:
#Thu May 24 17:23:11 CST 2012
namespaceID=1525353449
storageID=DS-1689019725-127.0.1.1-50010-1337851391704
cTime=0
storageType=DATA_NODE
layoutVersion=-18
6. 重启后执行jps命令:
2024-08-19 广告
广告 您可能关注的内容 |