1、如果啓動報sudo相關命令錯誤,是因爲啓動用戶未在sudoers裏面,需要將用戶添加到此文件中,添加方法搜下root位置,再後面添加即可。
內容如下:
root ALL=(ALL) ALL hadoop ALL=(ALL) ALL |
同時把此文件中的:#Defaults requiretty 註釋掉。
2、經過上面的設置之後,通過 alluxio-start.sh all 時,又報了另外一個錯誤,
[sudo] password for hadoop |
的錯誤,解決方法如下:
hadoop ALL=(ALL) NOPASSWD:ALL |
即可。
3、再次通過 alluxio-start.sh all 命令啓動整個集羣,但是啓動worker時報錯,報錯內容:Pseudo-terminal will not be allocated because stdin is not a terminal。解決方法如下:
更改:alluxio\bin\alluxio-workers.sh 的44行內容
原始內容爲:
nohup ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no -t ${worker} ${LAUNCHER} \ |
改成如下:
nohup ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no -tt $ {worker} ${LAUNCHER} \ |
4、經過上面的處理之後,通過 alluxio-start.sh all 命令再次啓動集羣時,Worker上的 AlluxioWorker 進程還是沒有,然後在 alluxio-1.2.0/logs 目錄下有一個 worker.out 文件,其中的內容如下:
which: no java in (/sbin:/bin:/usr/sbin:/usr/bin) dirname: 缺少操作數 請嘗試執行"dirname --help"來獲取更多信息。 ALLUXIO_RAM_FOLDER was not set. Using the default one: /mnt/ramdisk Formatting RamFS: /mnt/ramdisk (1gb) Starting worker @ HDFS-YARN-2. Logging to /usr/alluxio-1.2.0/logs |
從錯誤信息中,可以看出,在啓動腳本中運行which java 時報錯了,然後找到報錯的腳本,腳本內容如下:
但是,我們已經在 /etc/profile 中已經配置了 JAVA_HOME,並將 JAVA_HOME/bin 加入到了 PATH 中了,如圖:
,並且在命令行中單獨運行 which java 是沒有問題的。
[hadoop@HDFS-YARN-2 logs]$ which java /usr/java/jdk1.7.0_55/bin/java [hadoop@HDFS-YARN-2 logs]$ |
並且我又在 bin/alluxio-env.sh中,又配置了 JAVA_HOME 了,可爲什麼不行呢,原因還在上面的腳本中,可以看到其先是進行Java是否存在的判斷,之後再進行conf/alluxio-env.sh腳本的運行,所以不管再怎麼在alluxio-env.sh中設置JAVA_HOME已經沒有用了。解決方法:
將兩處的內容對調,如下圖:
再次運行 alluxio-start.sh all 腳本,此時,整個集羣啓來了。