code

OSX의 Hadoop "SCDynamicStore에서 영역 정보를로드 할 수 없음"

codestyles 2020. 12. 14. 08:14
반응형

OSX의 Hadoop "SCDynamicStore에서 영역 정보를로드 할 수 없음"


OSX 10.7에서 Hadoop을 시작할 때이 오류가 발생합니다.

SCDynamicStore put에서 영역 정보를로드 할 수 없습니다. org.apache.hadoop.hdfs.server.namenode.SafeModeException : / user / travis / input / conf 디렉토리를 만들 수 없습니다. 이름 노드가 안전 모드에 있습니다.

Hadoop의 기능에 문제를 일으키지 않는 것 같습니다.


HADOOP-7489에서 Matthew Buckett의 제안이 저에게 효과적이었습니다. hadoop-env.sh 파일에 다음을 추가합니다.

export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"

이에 대한 업데이트로 (그리고 Java 1.7에 대한 David Williams 의 요점 을 해결하기 위해 ) .realm.kdc속성 설정만으로 문제가되는 메시지를 중지하는 데 충분하지 않다는 것을 경험했습니다 .

그러나 메시지를 생략 하는 소스 파일조사하여 .krb5.conf속성을 /dev/null설정하는 것으로 메시지를 억제 할 수 있는지 확인할 수있었습니다 . 실제로 krb5 구성이있는 경우 실제 경로를 지정하는 것이 좋습니다.

전체적으로 내 hadoop-env.sh스 니펫은 다음과 같습니다.

HADOOP_OPTS="${HADOOP_OPTS} -Djava.security.krb5.realm= -Djava.security.krb5.kdc="
HADOOP_OPTS="${HADOOP_OPTS} -Djava.security.krb5.conf=/dev/null"

OS X 10.8.2, Java 버전 1.7.0_21에서 동일한 문제가 발생합니다. 불행히도 위의 솔루션은이 버전의 문제를 해결하지 못합니다.

편집 : 여기에서 본 힌트를 기반으로 이에 대한 해결책을 찾았습니다 . 에서 hadoop-env.sh파일의 변경 JAVA_HOME설정을합니다 :

export JAVA_HOME=`/usr/libexec/java_home -v 1.6`

(여기에 중요한 인용문이 있습니다.)


참고로 다음을 지정하기 만하면이를 더 단순화 할 수 있습니다.

export HADOOP_OPTS="-Djava.security.krb5.realm= -Djava.security.krb5.kdc="

이것은 HADOOP-7489에서도 언급됩니다.


나는 MacOS에서 비슷한 문제가 있었고 다른 조합을 시도한 후에 이것은 보편적으로 저에게 효과적이었습니다 (Hadoop 1.2 및 2.2 모두).

$HADOOP_HOME/conf/hadoop-env.sh다음 줄 설정하십시오.

# Set Hadoop-specific environment variables here.
export HADOOP_OPTS="-Djava.security.krb5.realm= -Djava.security.krb5.kdc="

# The java implementation to use.
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`

이것이 도움이되기를 바랍니다.


또한 추가

YARN_OPTS="$YARN_OPTS -Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"

cdh4.1.3에서 start-yarn.sh (또는 start-all.sh)를 실행하기 전에


Eclipse에서 MapReduce를 디버깅 할 때이 오류가 발생했지만 붉은 청어였습니다. 진짜 문제는 JAVA_OPTS에 디버깅 매개 변수를 추가하여 원격 디버깅을해야한다는 것입니다.

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044

그런 다음 포트 1044를 가리키는 디버그 구성에서 새 "원격 Java 애플리케이션"프로필을 만듭니다.

이 기사 에는 디버깅 측면에 대한 더 자세한 정보가 있습니다. Solr에 대해 이야기하고 있지만 Hadoop에서도 거의 동일하게 작동합니다. 문제가있는 경우 아래에 메시지를 붙여 주시면 도와 드리겠습니다.

참고 URL : https://stackoverflow.com/questions/7134723/hadoop-on-osx-unable-to-load-realm-info-from-scdynamicstore

반응형