복붙노트

[HADOOP] Hadoop : 데이터 노드 프로세스가 종료되었습니다.

HADOOP

Hadoop : 데이터 노드 프로세스가 종료되었습니다.

현재 Hadoop-2.0.3-alpha를 사용하고 있으며 HDFS (파일을 HDFS로 복사하고 외부 프레임 워크에서 웹 프런트 엔드를 사용하여 복사하는 작업)를 완벽하게 수행 한 후, 새 VM을 시작한 후 데이터 노드 프로세스가 중지됩니다. 잠시 후. namenode 프로세스와 모든 원사 프로세스는 문제없이 작동합니다. 추가 사용자 아래에 Hadoop을 설치했습니다. Hadoop 0.2도 설치 했으므로 제대로 작동했습니다. 모든 데이터 노드 프로세스의 로그 파일을 살펴보면 다음과 같은 정보를 얻을 수 있습니다.

2013-04-11 16:23:50,475 WARN org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2013-04-11 16:24:17,451 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
2013-04-11 16:24:23,276 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
2013-04-11 16:24:23,279 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started
2013-04-11 16:24:23,480 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Configured hostname is user-VirtualBox
2013-04-11 16:24:28,896 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Opened streaming server at /0.0.0.0:50010
2013-04-11 16:24:29,239 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Balancing bandwith is 1048576 bytes/s
2013-04-11 16:24:38,348 INFO org.mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
2013-04-11 16:24:44,627 INFO org.apache.hadoop.http.HttpServer: Added global filter 'safety' (class=org.apache.hadoop.http.HttpServer$QuotingIn putFilter)
2013-04-11 16:24:45,163 INFO org.apache.hadoop.http.HttpServer: Added filter static_user_filter (class=org.apache.hadoop.http.lib.StaticUserWebFil ter$StaticUserFilter) to context datanode
2013-04-11 16:24:45,164 INFO org.apache.hadoop.http.HttpServer: Added filter static_user_filter (class=org.apache.hadoop.http.lib.StaticUserWebFil ter$StaticUserFilter) to context logs
2013-04-11 16:24:45,164 INFO org.apache.hadoop.http.HttpServer: Added filter static_user_filter (class=org.apache.hadoop.http.lib.StaticUserWebFil ter$StaticUserFilter) to context static
2013-04-11 16:24:45,355 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Opened info server at 0.0.0.0:50075
2013-04-11 16:24:45,508 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: dfs.webhdfs.enabled = false
2013-04-11 16:24:45,536 INFO org.apache.hadoop.http.HttpServer: Jetty bound to port 50075
2013-04-11 16:24:45,576 INFO org.mortbay.log: jetty-6.1.26
2013-04-11 16:25:18,416 INFO org.mortbay.log: Started SelectChannelConnector@0.0.0.0:50075
2013-04-11 16:25:42,670 INFO org.apache.hadoop.ipc.Server: Starting Socket Reader #1 for port 50020
2013-04-11 16:25:44,955 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Opened IPC server at /0.0.0.0:50020
2013-04-11 16:25:45,483 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Refresh request received for nameservices: null
2013-04-11 16:25:47,079 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Starting BPOfferServices for nameservices: <default>
2013-04-11 16:25:47,660 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool <registering> (storage id unknown) service to localhost/127.0.0.1:8020 starting to offer service
2013-04-11 16:25:50,515 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting
2013-04-11 16:25:50,631 INFO org.apache.hadoop.ipc.Server: IPC Server listener on 50020: starting
2013-04-11 16:26:15,068 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /home/hadoop/workspace/hadoop_space/hadoop23/dfs/data/in_use.lock acquired by nodename 3099@user-VirtualBox
2013-04-11 16:26:15,720 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-474150866-127.0.1.1-1365686732002 (storage id DS-317990214-127.0.1.1-50010-1365505141363) service to localhost/127.0.0.1:8020
java.io.IOException: Incompatible clusterIDs in /home/hadoop/workspace/hadoop_space/hadoop23/dfs/data: namenode clusterID = CID-1745a89c-fb08-40f0-a14d-d37d01f199c3; datanode clusterID = CID-bb3547b0-03e4-4588-ac25-f0299ff81e4f
at org.apache.hadoop.hdfs.server.datanode.DataStorage .doTransition(DataStorage.java:391)
at org.apache.hadoop.hdfs.server.datanode.DataStorage .recoverTransitionRead(DataStorage.java:191)
at org.apache.hadoop.hdfs.server.datanode.DataStorage .recoverTransitionRead(DataStorage.java:219)
at org.apache.hadoop.hdfs.server.datanode.DataNode.in itStorage(DataNode.java:850)
at org.apache.hadoop.hdfs.server.datanode.DataNode.in itBlockPool(DataNode.java:821)
at org.apache.hadoop.hdfs.server.datanode.BPOfferServ ice.verifyAndSetNamespaceInfo(BPOfferService.java: 280)
at org.apache.hadoop.hdfs.server.datanode.BPServiceAc tor.connectToNNAndHandshake(BPServiceActor.java:22 2)
at org.apache.hadoop.hdfs.server.datanode.BPServiceAc tor.run(BPServiceActor.java:664)
at java.lang.Thread.run(Thread.java:722)
2013-04-11 16:26:16,212 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool BP-474150866-127.0.1.1-1365686732002 (storage id DS-317990214-127.0.1.1-50010-1365505141363) service to localhost/127.0.0.1:8020
2013-04-11 16:26:16,276 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool BP-474150866-127.0.1.1-1365686732002 (storage id DS-317990214-127.0.1.1-50010-1365505141363)
2013-04-11 16:26:18,396 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode
2013-04-11 16:26:18,940 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 0
2013-04-11 16:26:19,668 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:
/************************************************** **********
SHUTDOWN_MSG: Shutting down DataNode at user-VirtualBox/127.0.1.1
************************************************** **********/

어떤 아이디어? 설치 과정에서 실수를 저 지르지 않았습니까? 그러나 그것은 한 번 작동한다는 것이 이상합니다. 또한 추가 사용자로 ./hadoop-daemon.sh 명령을 실행하여 namenode를 시작하고 datanode와 동일한 명령으로 로그인 한 경우 sudo를 추가해야한다고 말합니다.

이 설치 가이드를 사용했습니다. http://jugnu-life.blogspot.ie/2012/0...rial-023x.html

그런데 Oracle Java-7 버전을 사용합니다.

해결법

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

    1.문제는 클러스터가 설정되고 데이터 노드가 포맷되지 않았기 때문에 namenode가 포맷 된 것일 수 있습니다. 따라서 슬레이브는 여전히 이전 namenode를 참조합니다.

    문제는 클러스터가 설정되고 데이터 노드가 포맷되지 않았기 때문에 namenode가 포맷 된 것일 수 있습니다. 따라서 슬레이브는 여전히 이전 namenode를 참조합니다.

    데이터 노드의 로컬 파일 시스템에서 / home / hadoop / dfs / data 폴더를 삭제하고 다시 만들어야합니다.

    위의 단계를 수행하여 폴더를 다시 만들고 문제를 해결해야합니다.

    위의 지침이 작동하지 않으면 구성 정보를 공유하십시오.

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

    2.DataNode는 호환되지 않는 Clusterids로 인해 사망합니다. 이 문제를 해결하려면 hadoop 2.X를 사용하고 있다면, hdfs-site.xml - "dfs.datanode.data.dir"(그러나 폴더 자체는 아닙니다)에서 지정한 폴더의 모든 것을 삭제해야합니다.

    DataNode는 호환되지 않는 Clusterids로 인해 사망합니다. 이 문제를 해결하려면 hadoop 2.X를 사용하고 있다면, hdfs-site.xml - "dfs.datanode.data.dir"(그러나 폴더 자체는 아닙니다)에서 지정한 폴더의 모든 것을 삭제해야합니다.

    ClusterID는 해당 폴더에서 유지 관리됩니다. dfs.sh를 삭제하고 다시 시작하십시오. 이것은 작동해야합니다!

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

    3.이 폴더가 없으면 C : \ hadoop \ etc \ hadoop \ hdfs-site.xml 파일을 열고 다음 삭제를 위해이 폴더의 경로를 가져옵니다. 나를 위해 그것은 말한다 :

    이 폴더가 없으면 C : \ hadoop \ etc \ hadoop \ hdfs-site.xml 파일을 열고 다음 삭제를 위해이 폴더의 경로를 가져옵니다. 나를 위해 그것은 말한다 :

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/hadoop/data/dfs/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/hadoop/data/dfs/datanode</value>
    </property>
    

    이제는 효과가있다!

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

    4.데이터 디렉토리를 삭제하지 않고이 작업을 수행하는 권장 방법은 단순히 데이터 노드의 VERSION 파일에서 clusterID 변수를 변경하는 것입니다.

    데이터 디렉토리를 삭제하지 않고이 작업을 수행하는 권장 방법은 단순히 데이터 노드의 VERSION 파일에서 clusterID 변수를 변경하는 것입니다.

    데몬 디렉토리를 보면 datanode 디렉토리 예제가 보일 것입니다

    data/hadoop/daemons/datanode
    

    VERSION 파일은 다음과 같아야합니다.

    cat current/VERSION 
    #Tue Oct 14 17:31:58 CDT 2014
    storageID=DS-23bf7f3a-085c-4531-808f-801ff6d52d14
    clusterID=CID-bb3547b0-03e4-4588-ac25-f0299ff81e4f
    cTime=0
    datanodeUuid=63154929-ae68-4149-9f75-9a6558545041
    storageType=DATA_NODE
    layoutVersion=-55
    

    CID-bb3547b0-03e4-4588-ac25-f0299ff81e4f 대신 CID-1745a89c-fb08-40f0-a14d-d37d01f199c3이 될 수 있도록 clusterId를 메시지 출력의 첫 번째 값으로 변경해야합니다.

    업데이트 된 버전은 변경된 clusterId와 같이 표시되어야합니다.

      cat current/VERSION 
        #Tue Oct 14 17:31:58 CDT 2014
        storageID=DS-23bf7f3a-085c-4531-808f-801ff6d52d14
        clusterID=CID-1745a89c-fb08-40f0-a14d-d37d01f199c3
        cTime=0
        datanodeUuid=63154929-ae68-4149-9f75-9a6558545041
        storageType=DATA_NODE
        layoutVersion=-55
    

    hadoop을 다시 시작하면 데이터 노드가 정상적으로 시작됩니다.

  5. from https://stackoverflow.com/questions/16020334/hadoop-datanode-process-killed by cc-by-sa and MIT license