[HADOOP] / bin / bash : / bin / java : 그런 파일이나 디렉토리가 없습니다.
HADOOP/ bin / bash : / bin / java : 그런 파일이나 디렉토리가 없습니다.
Mac OS X EL Captain 10.11에서 Java 1.7 SDK 및 Hadoop2.7.1을 사용하여 간단한 워드 카운트 MapReduce 프로그램을 실행하려고했는데 컨테이너 로그에 "stderr"라는 오류 메시지가 나타납니다. / bin / bash : / bin / java : 그런 파일이나 디렉토리가 없습니다.
응용 프로그램 로그 -
5/11/27 02:52:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
15/11/27 02:52:33 INFO client.RMProxy: Connecting to ResourceManager at /192.168.200.96:8032
15/11/27 02:52:34 INFO input.FileInputFormat: Total input paths to process : 0
15/11/27 02:52:34 INFO mapreduce.JobSubmitter: number of splits:0
15/11/27 02:52:34 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1448608832342_0003
15/11/27 02:52:34 INFO impl.YarnClientImpl: Submitted application application_1448608832342_0003
15/11/27 02:52:34 INFO mapreduce.Job: The url to track the job: http://mymac.local:8088/proxy/application_1448608832342_0003/
15/11/27 02:52:34 INFO mapreduce.Job: Running job: job_1448608832342_0003
15/11/27 02:52:38 INFO mapreduce.Job: Job job_1448608832342_0003 running in uber mode : false
15/11/27 02:52:38 INFO mapreduce.Job: map 0% reduce 0%
15/11/27 02:52:38 INFO mapreduce.Job: Job job_1448608832342_0003 failed with state FAILED due to: Application application_1448608832342_0003 failed 2 times due to AM Container for appattempt_1448608832342_0003_000002 exited with exitCode: 127
For more detailed output, check application tracking page:http://mymac.local:8088/cluster/app/application_1448608832342_0003Then, click on links to logs of each attempt.
Diagnostics: Exception from container-launch.
Container id: container_1448608832342_0003_02_000001
Exit code: 127
Stack trace: ExitCodeException exitCode=127:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:545)
at org.apache.hadoop.util.Shell.run(Shell.java:456)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:722)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Container exited with a non-zero exit code 127
Failing this attempt. Failing the application.
15/11/27 02:52:38 INFO mapreduce.Job: Counters: 0
나는 달리고있는 명령
hadoop jar wordcount.jar org.myorg.WordCount /user/gangadharkadam/input/ /user/gangadharkadam/output/
내 ENV 변수는 다음과 같습니다.
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.1
export HADOOP_MAPRED_HOME=/usr/local/hadoop/hadoop-2.7.1
export HADOOP_COMMON_HOME=/usr/local/hadoop/hadoop-2.7.1
export HADOOP_HDFS_HOME=/usr/local/hadoop/hadoop-2.7.1
export YARN_HOME=/usr/local/hadoop/hadoop-2.7.1
export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.7.1/etc/hadoop
export HADOOP_CLASSPATH=$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:HADOOP_HOME/sbin:$M2_HOME/bin:$ANT_HOME/bin:$IVY_HOME/bin:$FB_HOME/bin:$MYSQL_HOME/bin:$MYSQL_HOME/lib:$SQOOP_HOME/bin
문제는 YARN이 JAVA 실행 파일과 다른 경로를 사용하고 OS에서 다른 경로를 사용하고 있기 때문인 것으로 보입니다. "stderr"에 실패한 작업에 대한 로컬 로그가 표시됩니다. / bin / bash : / bin / java : 그런 파일이나 디렉토리가 없습니다.
$ JAVA_HOM / bin / java에서 / bin / java로 소프트 링크를 만들려고했지만 El Captian OS X에서는 소프트 링크를 만들 수 없습니다. 새로운 OS X EL Captian은 rootless 로그인을 가지고 있으며 사용자는 / bin /과 같은 특정 제한된 폴더에서 어떤 것도 만들 수 없습니다. 이 문제에 관한 해결 방법은 높이 평가됩니다. 미리 감사드립니다.
해결법
-
==============================
1.이 대답은 Hadoop 버전 2.6.0 및 이전 버전에 적용됩니다. SIP를 비활성화하고 심볼릭 링크를 만드는 것은 해결 방법을 제공합니다. 더 나은 해결책은 hadoop-config.sh를 수정하여 JAVA_HOME을 올바르게 선택하도록하는 것입니다.
이 대답은 Hadoop 버전 2.6.0 및 이전 버전에 적용됩니다. SIP를 비활성화하고 심볼릭 링크를 만드는 것은 해결 방법을 제공합니다. 더 나은 해결책은 hadoop-config.sh를 수정하여 JAVA_HOME을 올바르게 선택하도록하는 것입니다.
HADOOP_HOME / libexec / hadoop-config.sh에서 아래의 if 조건을 찾습니다. # JAVA_HOME이 설정되지 않은 경우 JAVA_HOME 설정 시도
다음과 같이 JAVA_HOME을 내보내는 줄에서 여분의 괄호를 제거하십시오. 이것을 변경하십시오
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
이 변경을 한 후에 원사를 다시 시작하십시오.
더 자세한 정보는 https://issues.apache.org/jira/browse/HADOOP-8717에서 확인할 수 있으며 Hadoop 3.0.0-alpha1이 수정 된 첫 번째 릴리스 인 것 같습니다.
-
==============================
2.$ HADOOP_PREFIX / sbin / start-yarn.sh 대신 다음 명령을 사용하여 YARN을 시작하면이 문제가 해결되었습니다.
$ HADOOP_PREFIX / sbin / start-yarn.sh 대신 다음 명령을 사용하여 YARN을 시작하면이 문제가 해결되었습니다.
$ HADOOP_PREFIX / sbin / yarn-daemon.sh start resourcemanager;
$ HADOOP_PREFIX / sbin / yarn-daemon.sh start nodemanager;
다음 링크에서 언급했듯이
https://issues.apache.org/jira/browse/HADOOP-8717
-
==============================
3.당신이 언급 한 설정으로 hadoop 2.7.1을 설치할 때 같은 오류가 발생했습니다. 왜이 오류가 발생했는지에 대한 아이디어를 얻기 위해이 링크를 따라갔습니다.
당신이 언급 한 설정으로 hadoop 2.7.1을 설치할 때 같은 오류가 발생했습니다. 왜이 오류가 발생했는지에 대한 아이디어를 얻기 위해이 링크를 따라갔습니다.
https://cloudcelebrity.wordpress.com/2014/01/31/yarn-job-problem-application-application_-failed-1-times-due-to-am-container-for-xx-exited-with-exitcode-127/
그러나 OS X El Capitan에서 실행 중일 때 나는 무의미한 상태 (시스템 무결성 보호 비활성화)로 진행해야합니다.
sudo ln -s /usr/bin/java /bin/java
위의 변경을 마친 후에는 MAC 보안을 위해 SIP를 활성화하는 것을 잊지 마십시오. 이 변경 후지도 축소 프로그램이 예상대로 작동합니다.
-
==============================
4.파일 ./libexec/hadoop-config.sh로 이동하십시오.
파일 ./libexec/hadoop-config.sh로 이동하십시오.
JAVA = $ JAVA_HOME을 추가하십시오.
"before # JAVA_HOME이 설정되지 않은 경우 설정을 시도합니다. if [[-z $ JAVA_HOME]]; 그때"
이것은 당신의 문제를 해결할 것입니다.
-
==============================
5.위의 어느 것도 나를 도왔다. 내가 고쳐 준 것은 :
위의 어느 것도 나를 도왔다. 내가 고쳐 준 것은 :
/usr/local/Cellar/hadoop/etc/hadoop/hadoop-env.sh에서 hadoop-env.sh 설정하기
변경된 항목 :
export JAVA_HOME = $ {JAVA_HOME}
이에:
export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_91.jdk / Contents / Home
이 사용자에게 제공되는 모든 크레딧 : https://stackoverflow.com/a/39676720/992347
건배
-
==============================
6.이 선은 잘못되었습니다.
이 선은 잘못되었습니다.
export $JAVA_HOME=
시작해야한다.
export JAVA_HOME=
변수를 찾을 때만 $를 사용합니다.
from https://stackoverflow.com/questions/33968422/bin-bash-bin-java-no-such-file-or-directory by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 아파치 드릴 vs 스파크 (0) | 2019.07.09 |
---|---|
[HADOOP] YARN의 응용 프로그램 관리자와 응용 프로그램 관리자의 차이점은 무엇입니까? (0) | 2019.07.09 |
[HADOOP] Apache Spark YARN 모드 시작에 너무 오래 걸립니다 (10 초 이상). (0) | 2019.07.09 |
[HADOOP] HDFS 복제 계수 (0) | 2019.07.09 |
[HADOOP] 노드 추가 후 hadoop 및 hbase 재조정 (0) | 2019.07.09 |