본문 바로가기

업무 채널

하둡 hadoop datanode 동작 오류 해결

하둡을 실행하였는데 DataNode 가 실행되지 않았다.

 

#jps

 

4825 NameNode
5391 TaskTracker
5242 JobTracker
5477 Jps
5140 SecondaryNameNode

이렇게 DataNode 없이 실행될 경우 일단 log 파일을 확인하자.

 

하둡폴더에서

# cat /log/hadoop-root-datanode-XXX.log

 

2013-02-11 12:27:29,615 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /tmp/hadoop-root/dfs/data: namenode namespaceID = 301052954; datanode namespaceID = 229562149
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:354)
at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:268)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1480)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1419)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1437)
at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1563)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1573)

 

확인해보니 해당 에러는 namenode namespaceID와 datanode namespaceID가 일치하지 않을 경우 발생하는 에러이다.

이 에러는 namenode -format 을 하였을 경우 주로 발생한다.

초기설치가 아닌 하둡 사용중에 namenode를 포맷하여야 하는 상황이 온다면

hdfs의 data 폴더를 지우고 다시 생성한 후, namenode를 포맷하여야 정상적으로 작동된다.