在把Hadoop环境搭建成功,并且也Hadoop的各个组件都正常工作。在重启过几次Hadoop后发现DataNode不能正常工作,打开Hadoop 的后台http://localhost:50030和http://localhost:50070发现Lives Nodes为0.
查看启动datanode的日志信息:
org.apache.hadoop.ipc.Client: Retryingconnect to server: uec-fe/16.157.63.10:9000. Already tried 0 time(s).
查看启动NameNode的日志信息:
java.io.IOException: File xxxxxxxxx/jobtracker.info could only be replicated to 0 nodes, instead of 1
经过查看在core-site.xml中也配置了hadoop.tmp.dir属性:
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
经过网上搜索试过了很多方式都没有用,后来看了一篇文章原来是没有权限的问题
sudo chown -R hadoop /home/hadoop/tmp
然后停止hadoop服务,重新格式化(一般格式化会提醒是否重新格式化该目录,说明该目录存在了,把该删的目录删掉,然后再格式化),最后启动hadoop服务。
总结:
解决该类问题的思路:
1>配置hadoop.tmp.dir属性;
2>修改权限sudo chown -R hadoop /home/hadoop/tmp(hadoop.tmp.dir的值)
最后,可能还有其他原因会导致Hadoop DataNode不能工作,正在积累中。