在Ubuntu里裝完Java環境后,接下來就開始學習安裝Hadoop了,參照的是以下鏈接
https://blog.csdn.net/xuan314708889/article/details/80500006
與之稍有不同的是我用的是實體機,Hadoop的版本是3.1.1,另外,我沒有單獨建hadoop帳號,直接用的是默認的的帳號。
安裝過程中的幾個錯誤及解決方法記錄如下,供參考
- 啟動時報Permission denied(publickey,password)的錯誤,少了以下授權步驟
cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost
ssh-keygen -t rsa # 會有提示,都按回車就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授權
裝完后訪問Hadoop提示“It looks like you are making an HTTP request to a Hadoop IPC port. This is not the correct port for the web interface on this daemon.”,同時無法訪問50070端口,原因是3.1.0版本后,50070端口 -> 9870端口了,以把50070改成9870就可以了- MySQL配置文件默認情況下可能因權限不夠無法修改,因此需要修改其權限
sudo chmod 776 mysqld.cnf
因為mysql 的特殊機制(基於安全考量,不允許這個配置文件被任何其他用戶可修改),改完權限后還需改回來
sudo chmod 644 /etc/mysql/mysql.conf.d/mysqld.cnf
- webHDFS出錯,如下圖,提示"Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS:Server Error“,也無法透過Web界面上傳文件
經過一番查找之后(可找Hadoop的Log日志)確認是Jdk的版本問題,重新下載Jdk8,原Jdk11繼續保留,只是在配置文件中啟用Jdk8。
配置文件包括:etc/hadoop/hadoop-env.sh和etc/profile,修改JAVA_HOME行為export JAVA_HOME=/usr/java/jdk1.8.0_191即可
這件事得到一個教訓,軟件並不是版本越高越好 - 上傳文件/創建目錄報錯 Permission Denied,修改hdfs-site.xml,設定dfs.permissions=false.如下
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>need not permissions</description>
</property> - 本地可以上傳,但在遠程用其他電腦則無法上傳,也無法下載Hadoop上的文件,經查發現遠程訪問DataNode時,地址是主機名,而非IP地址,參照“HDFS之DataNode啟動過程分析”,在hdfs-site.xml配置文件中配置slave.host.name項即可。