最近在看hadoop, 本机装的是伪分布模式。
但每次重启linux后,总需要执行hadoop namenode -format重新格式化namenode。

原因是:
HDFS把namenode的格式化信息存在了系统的tmp目录下,该目录每次开机会被清空,因此每次重新启动机器,都需要重新格式化HDFS。
如果之前已经往hdfs里放入了一些文件,这显然是不可接受的。

解决方案如下:
在你自己的家目录下创建 hadoop/tmp文件夹
在HADOOP_INSTALL/etc/hadoop/core-site.xml 的configure重新配置namenode的目录
即添加如下的property

<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/(当前用户名)/hadoop_tmp</value>
    <description>A base for other temporary directories.</description>
</property>

如果出现下面的错误
java.io.IOException: Cannot create directory /* * * / * * */tmp/dfs/name/current
请检查你刚才新建的hadoop/tmp,是否正确分配了用户组与文件夹权限。

配置完成后,执行,hadoop namenode -format 重新格式化namenode
再重启linux,
start-dfs.sh
jps看看namenode是否启动起来。
hadoop fs -mkdir /test
hadoop fs -ls /
随便执行两个命令确认下hdfs是否正常使用。

参考:http://www.tuicool.com/articles/eAbuEvE

Logo

更多推荐