分享

Hadoop服务器重启后,NameNode不能启动。

chenhaoyes 发表于 2014-8-27 16:55:46 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 37483
服务器重启后发现HDFS不能启动了,查找原因是主从机ID不一致,格式化HDFS,重新启动又好了。但是总不能每次都需要格式化HDFS吧,感觉应该是可以配置的,不知道有没有大神知道修改哪些配置可以解决这个问题?

已有(7)人评论

跳转到指定楼层
sstutu 发表于 2014-8-27 17:18:02
首先看一下namespaceID是什么?

namespaceID
namespaceID唯一标识了HDFS,在格式化HDFS的时候指定了它的值。在HDFS集群启动以后,使用namespaceID来识别集群中的Datanode节点,也就是说,在HDFS集群启动的时候,各个Datanode会自动向Namenode注册获取到namespaceID的值,然后在该值存储在Datanode节点的VERSION文件中。

从上面我们看到只有格式化的时候,才会指定它的值,上面由于你多次格式化,造成异常,才有可能出现不一致。
但并不是每次都不一致。
还需要强调的是,重启并不是格式化,也就是说,重启机器,namespaceID是不会发生变化的。
也就是说你不需要每次都需要格式化。



回复

使用道具 举报

chenhaoyes 发表于 2014-8-27 17:27:53
查找了一些资料,说要在core-site.xml文件下配置hadoop.tmp.dir属性,这个属性也配置了,但重启后还是会出现这个错误。
回复

使用道具 举报

chenhaoyes 发表于 2014-8-27 17:40:53
sstutu 发表于 2014-8-27 17:18
首先看一下namespaceID是什么?

恩,现在是重启之后,NameNode就不能正常启动了,才想到去格式化,这样才能正常启动。你的意思是重启之后应该能正常启动吧?现在我这边是重启之后不能正常启动才想到格式化HDFS。
回复

使用道具 举报

sstutu 发表于 2014-8-27 18:05:20
chenhaoyes 发表于 2014-8-27 17:40
恩,现在是重启之后,NameNode就不能正常启动了,才想到去格式化,这样才能正常启动。你的意思是重启之后 ...
重启之后是正常的,如果不正常,看看日志是哪里出错了。
不会看日志,看这里
Hadoop日志位置在哪里?确切日志位置指定
回复

使用道具 举报

xierui54 发表于 2014-8-28 11:01:41
在core-site.xml文件下配置hadoop.tmp.dir属性默认是在/tmp下,/tmp这个文件夹下会定时清理,
开始我没有设置这个属性,重启后遇到过hdfs无法成功启动,但是我把hadoop.tmp.dir设置在其他的地方之后,hdfs就没有遇到这个问题了
回复

使用道具 举报

chenhaoyes 发表于 2014-8-28 16:18:18
xierui54 发表于 2014-8-28 11:01
在core-site.xml文件下配置hadoop.tmp.dir属性默认是在/tmp下,/tmp这个文件夹下会定时清理,
开始我没有 ...

你所说的/tmp目录指的服务器根目录下的tmp目录么?我是自己在core-site.xml文件夹下设置了hadoop.tmp.dir的属性为/home/hadoop/tmp,没有采用默认的值,很奇怪,服务器关机重启之后namenode还是不能启动。
回复

使用道具 举报

曼查狂人 发表于 2015-8-2 11:54:17
chenhaoyes 发表于 2014-8-28 16:18
你所说的/tmp目录指的服务器根目录下的tmp目录么?我是自己在core-site.xml文件夹下设置了hadoop.tmp.dir ...

解决了吗,目前我也遇到这个问题了。。
我也是设置了tmp的目录,但是重启电脑之后namenode就启动不了了。。
看log一直提示io错误,应该跟你的是一样的。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条