hadoop中datanode无法启动

摘要:该文档解决了多次格式化文件系统后,datanode无法启动的问题

一、问题描述

       当我多次格式化文件系统时,如

       grid@masternode:~/hadoop$ bin/hadoop namenode -format

       会出现datanode无法启动,查看slave节点的日志,发现包含如下信息:


2012-09-07 05:53:27,245 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException:Incompatible namespaceIDs in /home/grid/hadoop/data: namenode namespaceID = 1155419402; datanode namespaceID = 696660979


二、问题产生原因

      当我们在master节点执行文件系统格式化命令时,会在master节点namenode数据文件夹即配置文件hdfs-site.xmldfs.name.dir指明的路径中保存一个current/VERSION文件,记录namespaceID,标识了所格式化的最新namenode的版本。master节点的namespaceID每次格式化都刷新。

     但是,slave节点的datanode数据文件夹即配置文件hdfs-site.xmldfs.data.dir指明的路径中保存的current/VERSION文件不会随着每次格式化都刷新,只保留了第一次格式化时master节点保存的namespaceID

      如果我们频繁的格式化namenode,那么slave节点的namespaceID就会与master节点的namespaceID不一致,因此就会造成上述错误。

三、解决办法

      修改各slave节点的namespaceID与master节点保持一致。


附录:

hdfs-site.xml文件内容:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->


<configuration>

<property>

<name>dfs.name.dir</name>

<value>/home/grid/hadoop/namedata</value>

</property>


<property>

<name>dfs.data.dir</name>

<value>/home/grid/hadoop/data</value>

</property>


<property>

<name>dfs.replication</name>

<value>2</value>

</property>


</configuration>


注意: dfs.name.dir默认指向/tmp文件,/tmp文件夹每次重启电脑都会清空,所以最好设置该属性,指向其它目录,比如上文配置文件中指向的 /home/grid/hadoop/namedata
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值