복붙노트

[HADOOP] 왜 hadoop을 실행할 때 데이터 노드가 종료됩니까?

HADOOP

왜 hadoop을 실행할 때 데이터 노드가 종료됩니까?

나는 hadoop 1.0.4를 버추얼 박스의 11.0.4 우분투에 설치했다. (내 호스트 이름과 같다.) 어떻게 든 데이터 노드는 로그 파일에 다음과 같은 오류를 준다.

/************************************************************
STARTUP_MSG: Starting DataNode
STARTUP_MSG:   host = VirtualBox/127.0.1.1
STARTUP_MSG:   args = []
STARTUP_MSG:   version = 1.0.4
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1393290; compiled by 'hortonfo' on Wed Oct  3 05:13:58 UTC 2012
************************************************************/
2013-08-18 19:52:21,301 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
2013-08-18 19:52:21,394 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered.
2013-08-18 19:52:21,412 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
2013-08-18 19:52:21,417 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started
2013-08-18 19:52:23,207 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source ugi registered.
2013-08-18 19:52:23,276 WARN org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Source name ugi already exists!
2013-08-18 19:52:26,887 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /app/hadoop/tmp/dfs/data: namenode namespaceID = 457871323; datanode namespaceID = 2066655210
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:232)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:147)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:385)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:299)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1582)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1521)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1539)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1665)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1682)

2013-08-18 19:52:26,903 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at VirtualBox/127.0.1.1
************************************************************/

왜 그런지 아십니까? 어떻게 고칠 수 있습니까?

해결법

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

    1.이 일이 몇 번 발생했습니다. 데이터 노드를 다시 시작해도 문제가 해결되지 않으면 다음을 수행하십시오.

    이 일이 몇 번 발생했습니다. 데이터 노드를 다시 시작해도 문제가 해결되지 않으면 다음을 수행하십시오.

    문제를 해결해야합니다.

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

    2.이것은 이름 노드를 포맷 할 때 잘 알려진 문제입니다. 아래 URL을 참조하십시오 :

    이것은 이름 노드를 포맷 할 때 잘 알려진 문제입니다. 아래 URL을 참조하십시오 :

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

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

    3.이는 일반적으로 namenode를 형식화하고 데이터 노드를 정리하지 않고 네임 스페이스를 변경하지 않을 때 발생합니다.

    이는 일반적으로 namenode를 형식화하고 데이터 노드를 정리하지 않고 네임 스페이스를 변경하지 않을 때 발생합니다.

    가능한 해결책 :

    / app / hadoop / tmp / dfs / data 디렉토리를 삭제하고 데이터 노드를 다시 시작하십시오.

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

    4.네임 노드의 데이터가 손실되었습니다. 나는 내 이름 노드를

    네임 노드의 데이터가 손실되었습니다. 나는 내 이름 노드를

    hadoop namenode -format
    

    namenode를 시작한 후 VERSION 문제로 인해 datanode를 시작하지 못했습니다.

    그런 다음 데이터 노드에서 모든 데이터도 제거해야합니다.

    dfs (/{hadoop.tmp.dir}/dfs/data/*)의 데이터 폴더를 정리하고 데이터 노드를 다시 시작할 수 있습니다

    즉 rm -rf /{hadoop.tmp.dir}/dfs/data/*

    또는

    버전 파일 (/{hadoop.tmp.dir}/dfs/data/current/VERSION)을 삭제하고 데이터 노드를 다시 시작하십시오.

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

    5.

    Restart Hadoop
    Go to /app/hadoop/tmp/dfs/name/current
    Open VERSION (i.e. by vim VERSION)
    Record namespaceID
    Go to /app/hadoop/tmp/dfs/data/current
    Open VERSION (i.e. by vim VERSION)
    Replace the namespaceID with thve namespaceID you recorded in step 4.
    

    위의 단계를 수행하려면 나는 데이터 폴더 / tmp / data에 어떤 파일도 갖고 있지 않다.

  6. from https://stackoverflow.com/questions/18300940/why-does-data-node-shut-down-when-i-run-hadoop by cc-by-sa and MIT license