복붙노트

[HADOOP] hadoop의 데이터 노드가 시작되지 않습니다.

HADOOP

hadoop의 데이터 노드가 시작되지 않습니다.

우분투 14.04 LTS Java 버전 8과 Hadoop 2.5.1을 설치에 사용하고 있습니다. 모든 구성 요소를 설치하려면이 안내서를 따라야합니다. 마이클 놀을 사용하지 않아서 미안해. 이제 내가 직면하는 문제는 내가 start-dfs.sh 할 때 다음과 같은 메시지를 받는다.

oroborus@Saras-Dell-System-XPS-L502X:~$ start-dfs.sh <br>
14/11/12 16:12:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable<br>
Starting namenodes on [localhost]<br>
localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop-oroborus-namenode-Saras-Dell-System-XPS-L502X.out<br>
localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-oroborus-datanode-Saras-Dell-System-XPS-L502X.out<br>
Starting secondary namenodes [0.0.0.0]<br>
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-oroborus-secondarynamenode-Saras-Dell-System-XPS-L502X.out<br>
14/11/12 16:12:48 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable<br>

이제 start-yarn.sh (잘 작동하는 것 같습니다)와 jps를 실행 한 후 다음 결과를 얻습니다.

oroborus@Saras-Dell-System-XPS-L502X:~$ jps
9090 NodeManager
5107 JobHistoryServer
8952 ResourceManager
12442 Jps
11981 NameNode

이상적인 출력에는 데이터 노드가 있어야하지만 거기에는 없습니다. 인터넷 검색에서 약간의 오류가 로그에서 느껴진다. 여기에 데이터 노드의 로그가있다. (더 많은 정보가 필요하면 오류 부분 만)

    2014-11-08 23:30:32,709 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: registered UNIX signal handlers for [TERM, HUP, INT]
2014-11-08 23:30:33,132 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid dfs.datanode.data.dir /usr/local/hadoop_store/hdfs/datanode :
EPERM: Operation not permitted
        at org.apache.hadoop.io.nativeio.NativeIO$POSIX.chmodImpl(Native Method)
        at org.apache.hadoop.io.nativeio.NativeIO$POSIX.chmod(NativeIO.java:226)
        at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:642)
        at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:472)
        at org.apache.hadoop.util.DiskChecker.mkdirsWithExistsAndPermissionCheck(DiskChecker.java:126)
        at org.apache.hadoop.util.DiskChecker.checkDir(DiskChecker.java:142)
        at org.apache.hadoop.hdfs.server.datanode.DataNode$DataNodeDiskChecker.checkDir(DataNode.java:1866)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.checkStorageLocations(DataNode.java:1908)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1890)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1782)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1829)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2005)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2029)
2014-11-08 23:30:33,134 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain
java.io.IOException: All directories in dfs.datanode.data.dir are invalid: "/usr/local/hadoop_store/hdfs/datanode/"
        at org.apache.hadoop.hdfs.server.datanode.DataNode.checkStorageLocations(DataNode.java:1917)

이제 나의 의심은 그것을 유효하게 만드는 방법이다.

도움을 주시면 감사하겠습니다. 추신 나는 많은 포럼을 시도했다. 그래서 그들 중 누구도 나에게이 문제에 대한 해결책을 줄 수 없었다. 그러므로 질문.

해결법

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

    1.먼저 hdfs 폴더에서 모든 내용을 삭제하십시오 :

    먼저 hdfs 폴더에서 모든 내용을 삭제하십시오 :

    의 값 hadoop.tmp.dir

    rm -rf /usr/local/hadoop_store
    

    dir에 올바른 소유자와 권한이 있는지 확인하십시오. / usr / local / hadoop_store

    hduser@localhost$sudo chown hduser:hadoop -R /usr/local/hadoop_store
    hduser@localhost$sudo chmod 777 -R /usr/local/hadoop_store
    

    목적을 형식화하십시오 :

    hduser@localhost$hadoop namenode -format
    

    모든 프로세스를 다시 시작하십시오.

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

    2.나는 또한 같은 문제가있어, 그 작업 디렉토리의 소유자를 변경하여 그들을 해결했습니다. 당신이 권한이 777 두 디렉토리에 있지만, 프레임 워크는 hduser로 소유자를 변경하지 않는 한 그것을 사용할 수 없습니다.

    나는 또한 같은 문제가있어, 그 작업 디렉토리의 소유자를 변경하여 그들을 해결했습니다. 당신이 권한이 777 두 디렉토리에 있지만, 프레임 워크는 hduser로 소유자를 변경하지 않는 한 그것을 사용할 수 없습니다.

    $ sudo chown -R hduser : hadoop / usr / local / hadoop / yarn_data / hdfs / namenode

    $ sudo chown -R hduser : hadoop / usr / local / hadoop / yarn_data / hdfs / datanode

    그런 다음 클러스터를 다시 시작하면 데이터 노드가 실행되고 있음을 알 수 있습니다.

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

    3.희망이 도움이됩니다.

    희망이 도움이됩니다.

  4. ==============================

    4.클로우 데라를 사용할 때, 나는 똑같은 문제가있었습니다.

    클로우 데라를 사용할 때, 나는 똑같은 문제가있었습니다.

    * chown hdfs:hadoop all_hdfs_directories
      chown 997:996 all_hdfs_directories (if users don't exist yet)
    * chmod 0755 is enough
    * delete contents of directories if problem persists
    
  5. from https://stackoverflow.com/questions/26885330/hadoops-datanode-is-not-starting by cc-by-sa and MIT license