hadoop 분포식 환경 배치의namenode나datanode 시작 실패

32319 단어
버그 정보:
namenode

org.apache.hadoop.ipc.Server: Error register getProtocolVersion
java.lang.IllegalArgumentException: Duplicate metricsName:getProtocolVersion
at org.apache.hadoop.metrics.util.MetricsRegistry.add(MetricsRegistry.java:53)
at org.apache.hadoop.metrics.util.MetricsTimeVaryingRate.<init>(MetricsTimeVaryingRate.java:89)
at org.apache.hadoop.metrics.util.MetricsTimeVaryingRate.<init>(MetricsTimeVaryingRate.java:99)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:523)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:959)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:955)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:953)
2010-01-14 09:32:13,093 INFO org.apache.hadoop.ipc.Server: Error register versionRequest
java.lang.IllegalArgumentException: Duplicate metricsName:versionRequest
at org.apache.hadoop.metrics.util.MetricsRegistry.add(MetricsRegistry.java:53)
at org.apache.hadoop.metrics.util.MetricsTimeVaryingRate.<init>(MetricsTimeVaryingRate.java:89)
at org.apache.hadoop.metrics.util.MetricsTimeVaryingRate.<init>(MetricsTimeVaryingRate.java:99)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:523)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:959)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:955)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:953)


datanode:

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: IncompatiblenamespaceIDs in /var/lib/hadoop-0.20/cache/hdfs/dfs/data: namenode namespaceID =240023870; datanode namespaceID = 1462715681 .


ubuntu 운영체제 세 대의 기계로hadoop의 분포식 집단을 구축했다.서비스를 시작한 후 실패했습니다.
문제: Namenode의 namespaceID와 datanode의 namespaceID가 일치하지 않습니다.namenode의 문제는 Datanode 버그로 인한 것일 수 있습니다.
원인: 매번namenodeformat에서namenodeId를 다시 만듭니다. tmp/dfs/data에는 지난번format에서의id가 포함되어 있습니다.namenodeformat에서namenode에서 데이터를 비웠지만,datanode에서 데이터를 비우지 않아서namenode 노드에서namespaceID와datanode 노드에서namespaceID가 일치하지 않습니다.부팅에 실패했습니다.
해결: 이 사이트 주소 참조http://blog.csdn.net/wh62592855/archive/2010/07/21/5752199.aspx두 가지 해결 방법을 제시합니다. 첫 번째 해결 방법은 다음과 같습니다.
(1) 집단 서비스 중단
(2) 문제가 발생한 데이터 디렉터리에서 데이터 디렉터리를 삭제하면 데이터 디렉터리는hdfs-site입니다.xml 파일에 설정된 dfs.data.디렉터리, 이 기계에 있는 것은/var/lib/hadoop-0.20/cache/hdfs/dfs/data/(주: 우리는 모든 데이터 디렉터리와namenode 노드에서 이 절차를 실행했습니다. 삭제 후 성공하지 못할 경우를 대비하여 데이터 디렉터리를 복사본으로 저장할 수 있습니다.)
(3)namenode를 포맷합니다.
(4) 클러스터를 다시 시작합니다.
문제 해결.
이런 방법이 가져온 부작용 중 하나는 hdfs의 모든 데이터를 잃어버리는 것이다.만약hdfs에 중요한 데이터가 저장되어 있을 때 이 방법을 사용하지 않고 제공하는 사이트 주소의 두 번째 방법을 시도할 수 있습니다.
참조:http://blog.csdn.net/wh62592855/archive/2010/07/21/5752199.aspx

좋은 웹페이지 즐겨찾기