1. 程式人生 > 實用技巧 >Hadoop配置出錯原因記錄

Hadoop配置出錯原因記錄

1.背景

最近master節點的呼叫hdfs命令總是報錯,拒絕9000遠端訪問。但是埠還是好的(未佔用)。搜了一圈網上的解決方案,一個個試過去都不行,最後導致namenode都起不來了,心態差點崩了,就差重新裝一遍了。

2.排查問題

後來靜下心來慢慢排查,去看logs資料夾下master的日誌檔案,才知道問題出在哪,namenode沒有格式化

2021-01-21 14:09:36,639 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
java.io.IOException: NameNode is not formatted.

然後嘗試格式化namenode,

hdfs namenode -format

報錯,報錯日誌如下圖,

3.解決方式

仔細看了下各個配置檔案,發現core-site.xml在配置tmp路徑時,多加了個file:,會不會是因為這個?(當時第一感覺就覺得這裡不對,但是看網上教程好像都成功了?所以就照做了。現在看來,不能太過信任網上的所謂的最全、最詳細教程啊!)

修改完後,再次格式化namenode資料夾,成功。
hdfs namenode -format

然後再啟動服務,

開啟hdfs服務

hduser@master:/usr/local/hadoop/etc/hadoop$ start-dfs.sh
Starting namenodes on [master]
master: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hduser-namenode-master.out
data2: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hduser-datanode-data2.out
data3: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hduser-datanode-data3.out
data1: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hduser-datanode-data1.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-hduser-secondarynamenode-master.out
hduser@master:/usr/local/hadoop/etc/hadoop$ jps
4375 Jps
4273 SecondaryNameNode
4046 NameNode

開啟yarn服務

hduser@master:/usr/local/hadoop/etc/hadoop$ start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn-hduser-resourcemanager-master.out
data2: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hduser-nodemanager-data2.out
data1: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hduser-nodemanager-data1.out
data3: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hduser-nodemanager-data3.out
hduser@master:/usr/local/hadoop/etc/hadoop$ jps
4507 Jps
4273 SecondaryNameNode
4428 ResourceManager
4046 NameNode

可以看到,這次服務都成功起來了。建立hdfs目錄,並且檢視,也成功。

hduser@master:/usr/local/hadoop/etc/hadoop$ hadoop fs -mkdir /test
hduser@master:/usr/local/hadoop/etc/hadoop$ hadoop fs -ls /
Found 1 items
drwxr-xr-x   - hduser supergroup          0 2021-01-21 14:23 /test

4.感悟

還是得獨立思考、研究,遇問題多看LOG,一昧找答案並不靠譜(還看到多個一模一樣的答案,不知道他們是怎麼都解決的)。