복붙노트

[HADOOP] 메인 클래스 org.apache.hadoop.hdfs.server.namenode.Namenode를 찾거나로드 할 수 없습니다.

HADOOP

메인 클래스 org.apache.hadoop.hdfs.server.namenode.Namenode를 찾거나로드 할 수 없습니다.

이전에이 질문을 받았지만 해결 방법을 찾지 못했습니다. hdfs 이름 노드 -format을 실행하려고 할 때 아래 오류가 나타납니다.

나는 나의 centos 기계에 설치하기 위하여이 웹 사이트에서 지시를 따랐다. 유일한 차이점은 링크에서 언급 한 바와 같이 hadoopuser 대신 루트를 사용하여 설치 한 것입니다.

# User specific aliases and functions

export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/
export HADOOP_INSTALL=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export PATH=$PATH:$HADOOP_INSTALL/sbin
export PATH=$PATH:$HADOOP_INSTALL/bin
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
</property>
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

<property>
    <name>dfs.name.dir</name>
    <value>file:///home/hadoopspace/hdfs/namenode</value>
</property>

<property>
    <name>dfs.data.dir</name>
    <value>file:///home/hadoopspace/hdfs/datanode</value>
</property>

해결법

  1. ==============================

    1.여전히 문제가있는 사람은 HADOOP_PREFIX 환경 변수를 내 보내야합니다.

    여전히 문제가있는 사람은 HADOOP_PREFIX 환경 변수를 내 보내야합니다.

    ~ / .bashrc 파일에 다음 행을 추가하십시오.

    export HADOOP_PREFIX=/path_to_hadoop_location
    
    # for example:
    # export HADOOP_PREFIX=/home/mike/hadoop-2.7.1
    

    그럼. ~ / .bashrc를 입력하고 다시 시도하십시오. 그러면 오류가 수정됩니다.

  2. ==============================

    2.감사합니다 dcsesq.

    감사합니다 dcsesq.

    Mac OS 10.9.5 (maverick)에 설치된 brew 설치된 hadoop 2.6.0

    .profile ~ / .bash_profile에 다음 env 변수를 추가하십시오.

    export HADOOP_HOME=/usr/local/Cellar/hadoop/2.6.0
    export HADOOP_PREFIX=$HADOOP_HOME/libexec
    export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
    export HADOOP_COMMON_HOME=$HADOOP_PREFIX
    export HADOOP_HDFS_HOME=$HADOOP_PREFIX
    export YARN_HOME=$HADOOP_PREFIX
    

    .profile 파일의 출처

    source ~/.bash_profile
    

    목적에 따라 달리다.

    hdfs namenode -format
    

    붐이 시작되어 거의 반나절이되었습니다.

  3. ==============================

    3.포맷팅을 위해 다음 명령을 사용하십시오 (이름과 노드 사이에 공백이 없으며 hdfs 명령을 hadoop로 대체하십시오)

    포맷팅을 위해 다음 명령을 사용하십시오 (이름과 노드 사이에 공백이 없으며 hdfs 명령을 hadoop로 대체하십시오)

    hadoop namenode -format
    
  4. ==============================

    4.hadoop 명령을 실행할 때 모든 클래스 (병)가 클래스 경로에 포함되는 것은 아닙니다. classpath에 hadoop-hdfs- .jar 파일이 없습니다.

    hadoop 명령을 실행할 때 모든 클래스 (병)가 클래스 경로에 포함되는 것은 아닙니다. classpath에 hadoop-hdfs- .jar 파일이 없습니다.

  5. ==============================

    5.위의 제안을 시도했지만 여전히 동일한 오류가 발생했습니다. ~ / .bashrc에서 HADOOP_CLASSPATH를 다음과 같이 설정하면 효과적입니다.

    위의 제안을 시도했지만 여전히 동일한 오류가 발생했습니다. ~ / .bashrc에서 HADOOP_CLASSPATH를 다음과 같이 설정하면 효과적입니다.

    export HADOOP_CLASSPATH = $ (hadoop classpath) : $ HADOOP_CLASSPATH

  6. ==============================

    6.나 또한이 오류가 발생했습니다. 나에게 문제는 초기 압축 해제 프로세스 중에 추출되지 않은 파일이 누락되었다는 것이었다.

    나 또한이 오류가 발생했습니다. 나에게 문제는 초기 압축 해제 프로세스 중에 추출되지 않은 파일이 누락되었다는 것이었다.

    나에게 효과가 있었던 것은 .tar.gz 파일의 위치에 들어가서 다음을 사용하여 다시 압축을 해제하는 것입니다.

    tar xvzf <file_name>.tar.gz
    

    이렇게하면 저장된 모든 파일이 무시되므로 파일을 변경 한 경우에는 압축을 해제하기 전에 Hadoop 폴더의 복사본을 만드는 것이 가장 좋습니다.

  7. ==============================

    7.나는 똑같은 문제에 직면했다.

    나는 똑같은 문제에 직면했다.

    터미널을 다시 시작하고 명령을 실행하십시오.

    .bashrc 파일 내에서 경로 변수를 즉시 설정하려면 터미널을 다시 시작해야합니다.

  8. ==============================

    8.더하다

    더하다

    hadoop 설치 디렉토리에있는 etc / hadoop / hadoop-env.sh 파일의 끝에. 그러면 jvm이 클래스 파일을 찾을 수 있습니다.

  9. ==============================

    9.어떤 hdfs 경로가 올바른지 확인하려면 다음을 사용하십시오.

    어떤 hdfs 경로가 올바른지 확인하려면 다음을 사용하십시오.

    which hdfs
    
  10. ==============================

    10.이 오류는 hadoop 클래스 경로에 hadoop hdfs jar 파일이 누락되어 발생합니다. 터미널에 'hadoop classpath'를 입력하고 hdfs jar 파일의 존재 여부를 확인하십시오. .bashrc 파일에 아래 라인을 붙여 넣지 않고 저장하면됩니다.

    이 오류는 hadoop 클래스 경로에 hadoop hdfs jar 파일이 누락되어 발생합니다. 터미널에 'hadoop classpath'를 입력하고 hdfs jar 파일의 존재 여부를 확인하십시오. .bashrc 파일에 아래 라인을 붙여 넣지 않고 저장하면됩니다.

    export HADOOP_CLASSPATH=new-classpath:$HADOOP_CLASSPATH
    

    기존 클래스 경로의 끝에 hdfs jar 파일에 위치를 추가하고 새로운 클래스 경로를 자신의 클래스 경로로 바꾸면 새 클래스 경로를 만들 수 있습니다.

  11. ==============================

    11.Windows 7의 Hadoop v3.1.2의 경우,

    Windows 7의 Hadoop v3.1.2의 경우,

    그 후에 그것은 완벽하게 작동했습니다. 여전히 문제가 발생하면 hdfs.cmd 파일을 파고 에코 호출을 추가하여 실행중인 내용을 인쇄하십시오. 특히 Java 호출 근처에서 실행중인 내용을 정확히 확인할 수 있습니다.

  12. ==============================

    12.HADOOP_PREFIX의 값을 확인하고 $ HADOOP로 설정하십시오.

    HADOOP_PREFIX의 값을 확인하고 $ HADOOP로 설정하십시오.

  13. from https://stackoverflow.com/questions/24718997/could-not-find-or-load-main-class-org-apache-hadoop-hdfs-server-namenode-namenod by cc-by-sa and MIT license