복붙노트

[HADOOP] 단일 시스템의 Hadoop에서 데이터 노드 실패

HADOOP

단일 시스템의 Hadoop에서 데이터 노드 실패

내가 설정하고 다음 튜토리얼을 사용하여 우분투 12.04 LTS에서 sudo 노드 hadoop 환경을 구성 http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#formatting-the-hdfs-filesystem-via-the-namenode

hadoop / bin $ start-all.sh를 입력하면 모든 것이 잘 된 다음 Jps를 확인했습니다. NameNode, JobTracker, TaskTracker, SecondaryNode가 시작되었지만 DataNode가 시작되지 않았습니다 ...

이 문제를 해결하는 방법을 알고 있다면 알려 주시기 바랍니다 ..

해결법

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

    1.나중에 해결했습니다 ...

    나중에 해결했습니다 ...

    java.io.IOException : 호환되지 않는 namespaceID

    java.io.IOException 오류 : DataNode (logs / hadoop-hduser-datanode-.log)의 로그에서 호환되지 않는 namespaceID가 표시되면 HDFS-107 (이전의 HADOOP-1212) 문제로 인해 영향을받을 가능성이 있습니다. .

    내 컴퓨터에서 다음과 같이 전체 오류가 발생했습니다.  ... 오류 org.apache.hadoop.dfs.DataNode : java.io.IOException : / app / hadoop / tmp / dfs / data의 호환되지 않는 namespaceID : namenode namespaceID = 308967713; 데이터 노드 namespaceID = 113030094         org.apache.hadoop.dfs.DataStorage.doTransition (DataStorage.java:281)에서         org.apache.hadoop.dfs.DataStorage.recoverTransitionRead (DataStorage.java:121)에서         org.apache.hadoop.dfs.DataNode.startDataNode (DataNode.java:230)에서         org.apache.hadoop.dfs.DataNode. (DataNode.java:199)         org.apache.hadoop.dfs.DataNode.makeInstance (DataNode.java:1202)에서         org.apache.hadoop.dfs.DataNode.run (DataNode.java:1146)에서         org.apache.hadoop.dfs.DataNode.createDataNode (DataNode.java:1167)에서         org.apache.hadoop.dfs.DataNode.main (DataNode.java:1326)에서 현재로서는 아래 설명과 같이 두 가지 해결 방법이있는 것 같습니다.

    해결 방법 1 : 처음부터 시작 다음 단계에서이 오류를 해결할 수 있음을 증언 할 수 있지만 부작용으로 인해 행복하게되지는 않습니다 (나도 마찬가지입니다). 내가 찾은 조잡한 해결 방법은 다음과 같습니다.

    클러스터를 중지 문제가있는 DataNode에서 데이터 디렉토리를 삭제하십시오. 디렉토리는 conf / hdfs-site.xml의 dfs.data.dir에 의해 지정됩니다. 이 학습서를 따른 경우 관련 디렉토리는 / app / hadoop / tmp / dfs / data입니다. 네임 노드를 다시 포맷하십시오 (참고 :이 과정에서 모든 HDFS 데이터가 손실됩니다!) 클러스터를 다시 시작하십시오. 모든 HDFS 데이터를 삭제하고 처음부터 시작하는 것이 좋은 생각처럼 들리지 않을 때 (초기 설정 / 테스트 중에는 괜찮을 수도 있음) 두 번째 방법을 시도해보십시오.

    해결 방법 2 : 문제가있는 DataNodes의 네임 스페이스 ID 업데이트 다음 제안에 대해 Jared Stehler에게 감사드립니다. 아직 테스트하지는 않았지만 자유롭게 사용해보고 의견을 보내 주시기 바랍니다. 이 해결 방법은 문제가있는 DataNode에서 하나의 파일 만 편집하면되므로 "최소 침습적"입니다.

    DataNode 중지 현재 NameNode의 값과 일치하도록 / current / VERSION의 namespaceID 값을 편집하십시오. DataNode를 다시 시작하십시오. 자습서의 지침을 따랐 으면 관련 파일의 전체 경로는 다음과 같습니다.

    네임 노드 : / app / hadoop / tmp / dfs / name / current / VERSION DataNode : / app / hadoop / tmp / dfs / data / current / VERSION (배경 : dfs.data.dir은 기본적으로 $ {hadoop.tmp.dir} / dfs / data로 설정되고 hadoop.tmp.dir을 설정합니다 이 튜토리얼에서 / app / hadoop / tmp).

    이 문제에 대한 해결책은 다음 사이트에서 명확하게 제공됩니다.

    http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#java-io-ioexception-incompatible-namespaceids

  2. from https://stackoverflow.com/questions/13062636/datanode-failing-in-hadoop-on-single-machine by cc-by-sa and MIT license