为什么每次重启机器后,namenode都启动不了,需要先hadoop namenode -format

来源:互联网 发布:带端口号的ssh 编辑:程序博客网 时间:2024/04/28 10:48

每次重启机器后,直接键入命令$start-all.sh.

然后从本地往hdfs中拷贝文件,$ hadoop fs -copyFromLocal ./gequ01.mp3 gequ02.mp3 

都会发生错误。
13/03/20 22:31:11 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:8020. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)

.........

Bad connection to FS. command aborted. exception: Call to localhost/127.0.0.1:8020 failed on connection exception: java.net.ConnectException: Connection refused

然后先$stop-all.sh

然后重新格式化namenode

$hadoop namenode -format

再执行拷贝文件,又OK了。

要是这样,每次格式化那还有什么意义,等于每次都把数据清掉了。。


百度了一下。有人说是

需要修改namenode file folder 的路径,该folder默认是在/tmp路径下,这个路径下的文件在机器重启后可会被自动删除!

有问题要先看日志。 看看log里能否看出些端倪。


看了namenode的log,确实是namenode数据遭到破坏。

然后修改hdfs-site.xml, 设定一些属性。

 <property>
      <name>dfs.name.dir</name>
      <value>/hadooptest/disk1/hdfs/name,/hadooptest/remote/hdfs/name</value>
      <final>true</final>
</property>

然后再试试。

结果

chang@changhh-desktop:~/Music$ hadoop fs -copyFromLocal ./gequ01.mp3 gequ05.mp3
copyFromLocal: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create file/user/chang/gequ05.mp3. Name node is in safe mode.


想必是<property>
<name>dfs.data.dir</name>
<value>/disk1/hdfs/data,/disk2/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>/disk1/hdfs/namesecondary,/disk2/hdfs/namesecondary</value>
<final>true</final>
</property>

还没有设定。机器重启时,把datanode又给弄没了。

这里在网上又查到Hadoop怎么 解除 "Name node is in safe mode"。请看下一个转贴的博客

用hadoop dfsadmin -safemode leave强制解除安全模式后,再拷贝,OK了。






原创粉丝点击