在把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不能工作,正在積累中。