Hadoop開啟後jps顯示只有jps
阿新 • • 發佈:2018-11-14
之前在用Mapreduce寫程式碼時,在DFS Location下的會報一個error,大體的意思就是與主機名相關的錯誤
然後我就覺得可能時Hadoop開啟時出了錯誤,然後我就重啟了Hadoop,jps查看了一下,果然出現了錯誤
可見jps命令輸入後什麼都沒有,原本應該如下圖所示
後來我就在網上百度,發現出現錯誤的原因時我主機名和配置檔案不一致造成的,根據Hadoop啟動時的提示,從這隨便挑選一個
例如; starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-ZMZ.out”,其中 ZMZ 時主機名,但其實
啟動日誌資訊是記錄在 /usr/local/hadoop/logs/hadoop-hadoop-namenode-ZMZ.log 中,所以應該檢視這個字尾為 .log 的檔案,果不其然
在對應的log中,注意此ip
然後開啟host檔案,輸入命令
sudo vi /etc/hosts
發現沒有上圖中.log 檔案對應的ip地址,所以要修改host檔案,把目前主機名及其對應的ip地址插進去
然後重啟網路,輸入
sudo /etc/init.d/networking restart
或者
reboot
重新啟動計算機生效
然後我再次jps,發現又缺少了DataNode
於是在網上找到的解決辦法,主要是參照林子雨的教程走的
此外,若是 DataNode 沒有啟動,可嘗試如下的方法(注意這會刪除 HDFS 中原有的所有資料,如果原有的資料很重要請不要這樣做)
# 針對 DataNode 沒法啟動的解決方法 ./sbin/stop-dfs.sh # 關閉 rm -r ./tmp # 刪除 tmp 檔案,注意這會刪除 HDFS 中原有的所有資料 ./bin/hdfs namenode -format # 重新格式化 NameNode ./sbin/start-dfs.sh # 重啟
執行後會刪除HDFS原有資料,注意儲存
然後再次jps,發現正常運行了