[HADOOP] Hadoop 사용 : localhost : 오류 : JAVA_HOME이 설정되지 않았습니다.
HADOOPHadoop 사용 : localhost : 오류 : JAVA_HOME이 설정되지 않았습니다.
나는 우분투 12.04 LTS와 함께 일하고있다.
가상 배포 작업을 수행하기 위해 hadoop 빠른 시작 설명서를 살펴 보겠습니다. 간단하고 간단합니다 (쉽게!).
그러나 start-all.sh를 실행하려고하면 다음을 얻습니다.
localhost: Error: JAVA_HOME is not set.
이 문제에 대한 stackoverflow에 대한 다른 모든 조언을 읽었으며 JAVA_HOME이 설정되도록 다음을 수행했습니다.
/etc/hadoop/conf/hadoop-env.sh에 내가 설정했습니다.
JAVA_HOME=/usr/lib/jvm/java-6-oracle
export JAVA_HOME
/etc/bash.bashrc에서 나는 설정했다.
JAVA_HOME=/usr/lib/jvm/java-6-oracle
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
which java returns :
/usr/bin/java
자바 - 버전 작품
echo $ JAVA_HOME은 다음을 반환합니다 :
/usr/lib/jvm/java-6-oracle
나는 루트가되어 터미널에 명시 적으로 쓰려고 노력했다.
$ JAVA_HOME=/usr/lib/jvm/java-6-oracle
$ export JAVA_HOME
$ start-all.sh
이 오류를 해결하는 방법을 보여 주시면 크게 감사하겠습니다. 내 JAVA_HOME이 어떻게 든 재정의되고 있다고 생각합니다. 그렇다면 내 수출품을 글로벌하게 만드는 방법을 설명해 주시겠습니까?
해결법
-
==============================
1.나는 hadoop 1.1을 사용하고 있으며 같은 문제에 직면 해있다.
나는 hadoop 1.1을 사용하고 있으며 같은 문제에 직면 해있다.
/etc/hadoop/hadoop-env.sh에서 JAVA_HOME 변수를 변경하면 해결됩니다.
export JAVA_HOME=/usr/lib/jvm/<jdk folder>
-
==============================
2.이 문제를 해결하는 방법은 conf / hadoop-env.sh 파일에서 JAVA_HOME 변수를 내보내는 것입니다.
이 문제를 해결하는 방법은 conf / hadoop-env.sh 파일에서 JAVA_HOME 변수를 내보내는 것입니다.
~ / .bashrc에 해당 변수를 이미 내 보낸 경우에는 오류가 표시됩니다.
따라서 conf / hadoop-env.sh를 편집하고 "JAVA_HOME 내보내기"행의 주석 처리를 제거하고 적절한 파일 시스템 경로, 즉 Java JDK에 대한 경로를 추가하십시오.
-
==============================
3.이것을 디버그하는 방법은 "echo $ JAVA_HOME"을 start-all.sh에 넣는 것입니다. 다른 사용자 이름이나 자신처럼 hadoop 환경을 실행하고 있습니까? 전자의 경우 JAVA_HOME 환경 변수가 해당 사용자에 대해 설정되지 않았을 가능성이 큽니다.
이것을 디버그하는 방법은 "echo $ JAVA_HOME"을 start-all.sh에 넣는 것입니다. 다른 사용자 이름이나 자신처럼 hadoop 환경을 실행하고 있습니까? 전자의 경우 JAVA_HOME 환경 변수가 해당 사용자에 대해 설정되지 않았을 가능성이 큽니다.
다른 잠재적 인 문제점은 JAVA_HOME을 잘못 지정 했으므로 제공 한 값이 JDK / JRE를 가리 키지 않습니다. JAVA_HOME이 잘못 설정된 경우에도 "which java"및 "java -version"이 모두 작동합니다.
-
==============================
4.etc / hadoop / hadoop-env.sh에서 추출한다.
etc / hadoop / hadoop-env.sh에서 추출한다.
유일한 필수 환경 변수는 JAVA_HOME입니다. 다른 모든 것들은 선택 과목. 분산 구성을 실행할 때 이 파일에 JAVA_HOME을 설정하여에 정의되어 있어야합니다. 원격 노드.
이것은 기존 정의가 JAVA_HOME 변수를 읽더라도 JAVA_HOME을 여기에 설정하는 것이 좋습니다. 아마도 이전에 설정된 값에서 JAVA_HOME의 값을 얻지 못하는 것입니다 ... 표준 아파치 설명서는 이것을 말하지 않습니다 :( :(
-
==============================
5.이 오류는 180 행에서 발생합니다.
이 오류는 180 행에서 발생합니다.
if [[ -z $JAVA_HOME ]]; then echo "Error: JAVA_HOME is not set and could not be found." 1>&2 exit 1 fi
libexec / hadoop-config.sh에 있습니다.
해당 스크립트에서 echo $ JAVA_HOME을 시도하십시오. 그것이 인식하지 못하면,
다음을 사용하여 JAVA_HOME을 찾으십시오.
$ (readlink -f / usr / bin / javac | sed "s : / bin / javac ::")
라인 교체
export JAVA_HOME = $ {JAVA_HOME} /etc/hadoop/hadoop-env.sh에서 JAVA_HOME 명령을 사용하십시오.
-
==============================
6.나는 또한 hadoop 1.1에서 비슷한 문제에 직면했다. 나는 JAVA_HOME이 주석 처리되었다는 것을 알아 채지 못했다 : hadoop / conf / hadoop-env.sh
나는 또한 hadoop 1.1에서 비슷한 문제에 직면했다. 나는 JAVA_HOME이 주석 처리되었다는 것을 알아 채지 못했다 : hadoop / conf / hadoop-env.sh
그것은
/#JAVA_HOME=/usr/lib/jvm/java-6-oracle
그것을 바꿔야 만했다.
JAVA_HOME=/usr/lib/jvm/java-6-oracle
-
==============================
7.데비안이나 리눅스의 맛에 관계없이 ~ / .bash_profile은 특정 사용자에게 속하고 시스템 전체가 아니라는 것을 알아야합니다. pseudo-distributed 환경에서 hadoop은 localhost에서 작동하므로 .bash_profile의 $ JAVA_HOME이 더 이상 사용되지 않습니다.
데비안이나 리눅스의 맛에 관계없이 ~ / .bash_profile은 특정 사용자에게 속하고 시스템 전체가 아니라는 것을 알아야합니다. pseudo-distributed 환경에서 hadoop은 localhost에서 작동하므로 .bash_profile의 $ JAVA_HOME이 더 이상 사용되지 않습니다.
~ / .bashrc에 JAVA_HOME을 내보내고 시스템 전체를 사용하십시오.
-
==============================
8.Ubuntu LTS 16.04에서 같은 문제가 발생했습니다. bash -vx ./bin/hadoop을 실행하면 java가 디렉토리인지 여부가 테스트되었습니다. 그래서 JAVA_HOME을 폴더로 바꿨다.
Ubuntu LTS 16.04에서 같은 문제가 발생했습니다. bash -vx ./bin/hadoop을 실행하면 java가 디렉토리인지 여부가 테스트되었습니다. 그래서 JAVA_HOME을 폴더로 바꿨다.
++ [[ ! -d /usr/bin/java ]] ++ hadoop_error 'ERROR: JAVA_HOME /usr/bin/java does not exist.' ++ echo 'ERROR: JAVA_HOME /usr/bin/java does not exist.' ERROR: JAVA_HOME /usr/bin/java does not exist.
그래서 JAVA_HOME을 ./etc/hadoop/hadoop-env.sh로 변경했습니다.
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre/
hadoop이 잘 시작됩니다. 이것은 또한이 기사에서 언급되었습니다.
-
==============================
9.대안이 올바른 것인지 확인하십시오. 실제로 다른 버전을 가리키고 다른 설치된 버전에서 hadoop-env.sh를 변경하려고 할 수 있습니다.
대안이 올바른 것인지 확인하십시오. 실제로 다른 버전을 가리키고 다른 설치된 버전에서 hadoop-env.sh를 변경하려고 할 수 있습니다.
-alternatives --install / etc / hadoop / conf [generic_name] [올바른 경로] priority {대체 경로 맨 페이지 확인}
수동으로 대안을 설정하려면,
대안 - [일반 이름] [현재 경로]를 설정하십시오.
-
==============================
10.conf / hadoop-env.sh에서 JAVA_HOME 변수를 변경하십시오.
conf / hadoop-env.sh에서 JAVA_HOME 변수를 변경하십시오.
export JAVA_HOME=/etc/local/java/<jdk folder>
-
==============================
11.
echo "export JAVA_HOME=/usr/lib/java" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
주의 사항 : export JAVA_HOME = $ {JAVA_HOME}을 사용하지 마십시오!
from https://stackoverflow.com/questions/14325594/working-with-hadoop-localhost-error-java-home-is-not-set by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] YARN의 컨테이너 란 무엇입니까? (0) | 2019.06.06 |
---|---|
[HADOOP] Hive에 문자열 분할 기능이 있습니까? (0) | 2019.06.06 |
[HADOOP] MapReduce / Hadoop을 사용하여 큰 데이터 정렬하기 (0) | 2019.06.06 |
[HADOOP] 'hadoop fs -head'쉘 명령이없는 이유는 무엇입니까? (0) | 2019.06.06 |
[HADOOP] 스파크에서 RDD 란 무엇입니까? (0) | 2019.06.06 |