Mac 環境 Hadoop 提交 job 報錯 /bin/bash: /bin/java: No such file or directory

Mac 環境 Hadoop 提交 job 報錯 /bin/bash: /bin/java: No such file or directory

➜  hadoop-2.9.2 bin/hadoop jar /Users/leone/Documents/hadoop-wc.jar com.leone.bigdata.hadoop.mr.wc.MrHelloWord /data/words.log /output /Users/leone/Documents/hadoop-wc.jar
20/06/20 20:55:22 INFO client.RMProxy: Connecting to ResourceManager at localhost/127.0.0.1:8032
20/06/20 20:55:23 WARN mapreduce.JobResourceUploader: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
20/06/20 20:55:23 INFO input.FileInputFormat: Total input files to process : 1
20/06/20 20:55:23 INFO mapreduce.JobSubmitter: number of splits:1
20/06/20 20:55:23 INFO Configuration.deprecation: yarn.resourcemanager.system-metrics-publisher.enabled is deprecated. Instead, use yarn.system-metrics-publisher.enabled
20/06/20 20:55:23 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1592657698633_0001
20/06/20 20:55:24 INFO impl.YarnClientImpl: Submitted application application_1592657698633_0001
20/06/20 20:55:24 INFO mapreduce.Job: The url to track the job: http://MacBookPro:8088/proxy/application_1592657698633_0001/
20/06/20 20:55:24 INFO mapreduce.Job: Running job: job_1592657698633_0001
20/06/20 20:55:27 INFO mapreduce.Job: Job job_1592657698633_0001 running in uber mode : false
20/06/20 20:55:27 INFO mapreduce.Job:  map 0% reduce 0%
20/06/20 20:55:27 INFO mapreduce.Job: Job job_1592657698633_0001 failed with state FAILED due to: Application application_1592657698633_0001 failed 2 times due to AM Container for appattempt_1592657698633_0001_000002 exited with  exitCode: 127
Failing this attempt.Diagnostics: [2020-06-20 20:55:27.116]Exception from container-launch.
Container id: container_1592657698633_0001_02_000001
Exit code: 127

[2020-06-20 20:55:27.118]Container exited with a non-zero exit code 127. Error file: prelaunch.err.
Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :
/bin/bash: /bin/java: No such file or directory


[2020-06-20 20:55:27.118]Container exited with a non-zero exit code 127. Error file: prelaunch.err.
Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :
/bin/bash: /bin/java: No such file or directory


For more detailed output, check the application tracking page: http://MacBookPro:8088/cluster/app/application_1592657698633_0001 Then click on links to logs of each attempt.
. Failing the application.
20/06/20 20:55:27 INFO mapreduce.Job: Counters: 0
➜  hadoop-2.9.2

解決方案

  1. 建立 Java 軟連接
sudo ln -s /usr/bin/java /bin/java

Mac下輸入此命令會提示ln: /bin/java: Operation not permitted 此時需要禁用 Mac 的 SIP 特性,SIP特性大概是指即使擁有sudo權限也無法修改系統級目錄的權限,默認爲啓用狀態,至於如何禁用可以自行Google。

  1. 修改 $HADOOP_HOME/ibexec/hadoop-config.sh(推薦)

if [ -x /usr/libexec/java_home ]; then
    export JAVA_HOME=($(/usr/libexec/java_home))
else
    export JAVA_HOME=(/Library/Java/Home)
fi

改爲

if [ -x /usr/libexec/java_home ]; then
    // note that the extra parentheses are removed
    export JAVA_HOME=$(/usr/libexec/java_home)
else
    export JAVA_HOME=/Library/Java/Home
fi

去掉了最外圍的括號(重啓Hadoop)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章