這篇是用來記錄 Hadoop 安裝記錄時遇到的問題的,我在 ubuntu16.04、14.02 上都折騰過 2.7 和 3.0,遇到的問題和解決方法大同小異。具體配置流程整理一下後單獨寫一篇文章。
問題描述:hadoop 3.0 配置完全分佈式時遇到的,start-all.sh 後發現終端輸出的信息中,slave 節點沒起來
解決方案:配置時有個文件寫錯了,hadoop3.0 中存儲slave節點名稱的文件叫 workers(=_=);
而 2 點幾的版本都是 slaves 文件,改過來後重新格式化一遍就好了,所以說一定要找自己要配置版本相對應的教程。
問題描述:格式化時遇到的(兩個版本都遇到過),運行命令
$ bin/hdfs namenode -format
時提示
bash: bin/hdfs: Permission danied
解決方案:這是由文件權限導致的,可以用 ls -l 命令列出當前路徑,當前用戶組對文件所擁有的權限,例如:
drwxr-xr-x
第 1 位表示文件類型(d 爲目錄文件,l 爲鏈接文件,- 爲普通文件,p 爲管道);
第 2-4 位表示這個文件的屬主擁有的權限,r 是讀,w 是寫,x 是執行;
第 5-7 位表示和這個文件屬主所在同一個組的用戶所具有的權限;
第 8-10 位表示其他用戶所具有的權限。
而我們這裏需要給所有文件賦予運行權,就是 x,具體命令爲:
$ sudo chmod -R +x hadoop
解釋一下參數,hadoop 爲文件夾,就是 hadoop 所在的根目錄,
+x 爲添加 x 權限,即可運行,
-R 表示對指定位置迭代操作,即修改 hadoop 文件夾下所有文件添加 x 權限。
問題描述:格式化時還可能遇到一個問題,
bin/hdfs: line 304: /xxxxxxxx/bin/java: Permission denied
bin/hdfs: line 304: exec: /xxxxxxxx/bin/java: cannot execute: Permission denied
解決方案:同上,還是文件權限的問題,找到 java 根目錄,修改方法也同上。
ERROR namenode.NameNode: Failed to start namenode.
java.io.IOException: Cannot create directory xxxxxxxxxxxxx
解決方案:命令前面帶上 sudo