在安裝hadoop中出現的一些小問題及解決辦法合集!

先給大家來一個親測可用的hadoop3.2.0下載地址,直接shell:

wget http://mirrors.hust.edu.cn/apache/hadoop/core/stable/hadoop-3.2.0.tar.gz

寫一些我在安裝hadoop時碰到的一些問題。

1.啓動hadoop報找不到jdk error。但是我也忘了jdk安裝在哪裏,查找資料後用whereis java 命令得到超鏈接,cd超鏈接後得到最終地址,vi hadoop.env.shexport JAVA_HOME="jdk路徑"解決問題。
2.啓動namenode和datanode時報沒有權限 error。發現問題出現在沒有加密鑰上,找官網代碼重新搞一遍:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

解決這個問題了。
3.啓動namenode和datanode時報一個奇怪(沒有及時記下來,好像是提示root用戶啥的)的error,啓動失敗。查詢資料知還需要配置四個文件 start-yarn.sh、stop-yarn.sh、start-dfs.sh、stop-dfs.sh 。

start-yarn.sh、stop-yarn.sh:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

start-dfs.sh、stop-dfs.sh

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

重新啓動start-all.sh解決問題。jps一下:

PS:之前有出現過一個問題,就是DataNode無法正常啓動,但是運行界面又沒有報錯,很奇怪,然後查詢了運行日誌,發現這段有問題:

2019-10-07 15:19:10,280 WARN org.apache.hadoop.hdfs.server.common.Storage: Failed to add storage directory [DISK]file:/home/leesf/program/hadoop/tmp/dfs/data
java.io.IOException: Incompatible clusterIDs in /home/leesf/program/hadoop/tmp/dfs/data: namenode clusterID = CID-56c18e53-1056-45eb-ae1f-773c146463cb; datanode clusterID = CID-34706444-8335-4222-8e5e-3dcca001970d

查了一下資料,發現是多次格式化後ID不匹配,解決方法就是去/home/leesf/program/hadoop/tmp/dfs/data/current/VERSION(具體路徑看log顯示)
文件裏把相應的ID改成一致的就可以了,重啓服務可以正常運行。

至此,所有進程算是運行成功了。

4.在舍友安裝hadoop過程中還出現了starting namenode時沒有報錯但是進程啓動失敗的問題。剛開始查閱資料得到是因爲端口被佔用應該是xml配置出現問題,但查了半天的配置文件,發現沒出現問題,最後發現問題出在hdfs沒有格式化,bin/hdfs namenode -format後解決這個問題。

5.小插曲:在執行start-all.sh時,如果在/hadoop/hadoop-3.2.0/sbin# 目錄下執行start-all.sh提示找不到命令,而在/hadoop/hadoop-3.2.0#目錄下執行sbin/start-all.sh可以正常運行。

.6.我用的是阿里雲服務器,在配置過程中出現無法查看Web UI的問題。剛開始一直沒辦法解決,訪問http://localhost:50070提示找不到網頁,後來查詢到hadoop3.2.0版本改到9870端口,訪問還是找不到網頁。這個問題擱置了很久,在完成全部其他配置後我纔開始着手解決這個問題。在查閱資料的過程中我突然意識到,我用的是阿里雲服務器,所以我去搜了一下,用http://阿里雲公網IP:9870可以訪問,但嘗試後發現還是不行。通過查閱資料得知,要在阿里雲服務器那邊添加安全組的入口規則允許9870端口訪問,保存並重啓。然後我發現之前在配置hdfs-site.xml時沒有配置dfs.namenode.http-address這一項,於是要添加下面的這幾行代碼(在原有的基礎上添加)::

<property>
<name>dfs.namenode.http-address</name>
<value>0.0.0.0:9870</value>
</property>

然後重新格式化hdfs:bin/hdfs namenode -format
重啓所有服務:sbin/start-all.sh
查閱資料時得知,端口可能被佔用,所以查找命令後執行

這下應該可以正常訪問了吧,我想。但是我在繼續訪問9870端口時又出現一個問題:

不過不是什麼大問題,換成Microsoft Edge瀏覽器訪問輕鬆解決了這個問題,下圖爲正常訪問:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章