看到市面上很多书在讲解Hadoop的时候都轻描淡写的提到了HDFS的设置问题。大多采取的是默认设置,最多也就是设置一些副本数量之类。
笔者在工作中遇到了这样一种情况:每次重启系统之后,NameNode就会消失。
重新尝试下面的命令:
1 hdfs namenode –format 2 sbin/start-all.sh
这样确实能够恢复Hadoop的运行,但是HDFS上面的数据会全部丢失。这显然不是我们想看到的。
仔细查找官方文档,发现hdfs-site.xml里面包含了HDFS的默认工作路径,竟然指向了”/tmp”!
添加下面的代码到hdfs-site.xml,替换成你自己的工作路径即可解决此问题。
1 <property> 2 <name>dfs.name.dir</name> 3 <value>/home/user/<user name>/hadoop_namedata</value> 4 </property>
最后,我的环境如下:
Ubuntu 14.10 x64
Hadoop 2.6.0