[HADOOP] Hadoop에 JAVA_Home이 설정되지 않았습니다.
HADOOPHadoop에 JAVA_Home이 설정되지 않았습니다.
나는 초보자이고 hadoop을 설치하고 우분투에서 단일 노드 클러스터로 hadoop을 설치하려고한다. 내 hadoop_env.sh에서 JAVA_HOME입니다.
# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}
그러나 내가 그것을 실행하면 다음과 같은 오류가 발생합니다.
Starting namenodes on [localhost]
localhost: Error: JAVA_HOME is not set and could not be found.
localhost: Error: JAVA_HOME is not set and could not be found.
Starting secondary namenodes [0.0.0.0]
0.0.0.0: Error: JAVA_HOME is not set and could not be found.
이 오류를 제거하려면 어떻게합니까?
해결법
-
==============================
1.코드를 디버깅하고 JAVA_HOME이 환경에 설정되어 있어도 다른 호스트에 대한 ssh 연결이 코드 내부에서 이루어지고 start-dfs.sh에 잘 설정된 JAVA_HOME 변수가 설정되지 않았기 때문에 값이 손실된다는 것을 알았습니다 hadoop-env.sh에서.
코드를 디버깅하고 JAVA_HOME이 환경에 설정되어 있어도 다른 호스트에 대한 ssh 연결이 코드 내부에서 이루어지고 start-dfs.sh에 잘 설정된 JAVA_HOME 변수가 설정되지 않았기 때문에 값이 손실된다는 것을 알았습니다 hadoop-env.sh에서.
이 문제에 대한 해결책은 hadoop-env.sh에서 JAVA_HOME 변수를 설정하는 것이므로 제대로 작동해야합니다.
-
==============================
2.나는 같은 오류가 있었고 Soil Jain의 발언으로 해결했지만 조금 더 명확하게하기 위해 hadoop-env.sh는 다음과 같은 표현식을 사용한다.
나는 같은 오류가 있었고 Soil Jain의 발언으로 해결했지만 조금 더 명확하게하기 위해 hadoop-env.sh는 다음과 같은 표현식을 사용한다.
export JAVA_HOME=${JAVA_HOME}
JVM 설치 경로를 하드 코딩하면 작동합니다.
export JAVA_HOME=/usr/lib/jvm/java...
환경 변수에 의한이 해결책은 실패로 보인다. 하드 코딩으로 인해 문제가 해결되었습니다.
-
==============================
3.HADOOP_HOME / conf 디렉토리 아래 hadoop-env.sh 파일을 업데이트하십시오. JAVA_HOME을 내보낼 항목이 있습니다.
HADOOP_HOME / conf 디렉토리 아래 hadoop-env.sh 파일을 업데이트하십시오. JAVA_HOME을 내보낼 항목이 있습니다.
이 파일에서 적절한 JAVA_HOME으로 설정하면 문제가 해결됩니다.
-
==============================
4.hadoop_env.sh를로드하고 있습니까? hadoop-env.sh (밑줄 대신 대시 - conf 디렉토리 아래 있음)를 참조 할 수 있습니다.
hadoop_env.sh를로드하고 있습니까? hadoop-env.sh (밑줄 대신 대시 - conf 디렉토리 아래 있음)를 참조 할 수 있습니다.
BTW, 빠른 설치를위한 매우 유용한 안내서입니다.
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
-
==============================
5.나는 hadoop 2.8.0을 사용하고있다. JAVA_HOME (.bashrc에 넣었습니다.)을 export 했는데도 start-dfs.sh를 실행하는 동안이 오류를 잡았습니다.
나는 hadoop 2.8.0을 사용하고있다. JAVA_HOME (.bashrc에 넣었습니다.)을 export 했는데도 start-dfs.sh를 실행하는 동안이 오류를 잡았습니다.
user@host:/opt/hadoop-2.8.0 $ echo $JAVA_HOME <path_to_java> user@host:/opt/hadoop-2.8.0 $ $JAVA_HOME/bin/java -version java version "1.8.0_65" ... user@host:/opt/hadoop-2.8.0 $ sbin/start-dfs.sh ... Starting namenodes on [] localhost: Error: JAVA_HOME is not set and could not be found. localhost: Error: JAVA_HOME is not set and could not be found.
내가 실행할 수있는 유일한 방법은 etc / hadoop / hadoop-env.sh에 JAVA_HOME = path_to_java를 추가 한 다음 소스를 제공하는 것입니다.
:/opt/hadoop-2.8.0 $ grep JAVA_HOME etc/hadoop/hadoop-env.sh #export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=path_to_java user@host:/opt/hadoop-2.8.0 $ source etc/hadoop/hadoop-env.sh
어쩌면 (소싱 hadoop-env.sh) 위의 게시물에 암시되었을 수 있습니다. 누군가가 큰 소리로 말해야한다고 생각했습니다. 이제 실행됩니다. 나는 (내가 사용하고있는 서버의 제한된 리소스로 인해) 다른 문제를 겪었지만 적어도이 문제를 극복했다.
-
==============================
6.먼저 hadoop_env.sh에서 JAVA_HOME을 설정해야합니다. (.bashrc의 로컬 JAVA_HOME은 어떻게 든 무시 될 것입니다)
먼저 hadoop_env.sh에서 JAVA_HOME을 설정해야합니다. (.bashrc의 로컬 JAVA_HOME은 어떻게 든 무시 될 것입니다)
# The java implementation to use. export JAVA_HOME=/usr/lib/jvm/default-java
그런 다음 HADOOP_CONF_DIR 지점을 hadoop_env.sh의 디렉토리로 설정하십시오. ~ / .bashrc에 다음 행을 추가하십시오.
HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop" export HADOOP_CONF_DIR
여기서 / usr / local / hadoop / etc / hadoop은 hadoop_env.sh가 들어있는 디렉토리입니다.
-
==============================
7.위의 대답은 기본 conf 디렉토리 $ HADOOP_HOME / conf 또는 $ HADOOP_HOME / etc / hadoop을 사용하는 한 작동해야합니다. 다음은 다른 conf 폴더를 사용하는 경우 수행해야 할 몇 가지 작업입니다.
위의 대답은 기본 conf 디렉토리 $ HADOOP_HOME / conf 또는 $ HADOOP_HOME / etc / hadoop을 사용하는 한 작동해야합니다. 다음은 다른 conf 폴더를 사용하는 경우 수행해야 할 몇 가지 작업입니다.
값을 적절하게 변경하십시오. .bashrc 또는 .profile 또는 .bash_profile에 hadoop과 관련된 다른 환경 변수가 있으면 위의 행 옆에 추가하십시오.
-
==============================
8.프로그램과 파일 사이의 공간을 알지 못합니다 : "프로그램 파일". 그래서 jdk의 폴더를 C :로 복사하거나 폴더 이름에 공백이없는 폴더를 다음과 같이 지정합니다 : export JAVA_HOME = Name_Path_Copied. 나는 그것이 달리는 것을 본다.
프로그램과 파일 사이의 공간을 알지 못합니다 : "프로그램 파일". 그래서 jdk의 폴더를 C :로 복사하거나 폴더 이름에 공백이없는 폴더를 다음과 같이 지정합니다 : export JAVA_HOME = Name_Path_Copied. 나는 그것이 달리는 것을 본다.
from https://stackoverflow.com/questions/20628093/java-home-is-not-set-in-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hive를 사용하여 날짜 차이를 몇 분 만에 얻는 방법 (0) | 2019.06.22 |
---|---|
[HADOOP] 자바에서 hdfs 폴더 삭제 (0) | 2019.06.22 |
[HADOOP] org.apache.hadoop.hbase.PleaseHoldException : 마스터가 초기화 중입니다. (0) | 2019.06.22 |
[HADOOP] SafeModeException : 이름 노드가 안전 모드에 있습니다. (0) | 2019.06.22 |
[HADOOP] 하이브 작업 이름을 제어하지만 스테이지 정보를 유지하려면 어떻게해야합니까? (0) | 2019.06.22 |