2014-11-13 2 views
3

멀티 노드 클러스터 (분산 모드)로 hadoop을 배포하고 있습니다. 그러나 각 데이터 노드는 서로 다른 클러스터 ID를 가지고 있습니다. SLAVE1에Hadoop 다중 노드 클러스터. 데이터 노드가 제대로 작동하지 않습니다.

, slave2에

java.io.IOException: Incompatible clusterIDs in /home/pushuser1/hadoop/tmp/dfs/data: namenode clusterID = CID-c72a7d30-ec64-4e4f-9a80-e6f9b6b1d78c; datanode clusterID = CID-2ecca585-6672-476e-9931-4cfef9946c3b 

,

java.io.IOException: Incompatible clusterIDs in /home/pushuser1/hadoop/tmp/dfs/data: namenode clusterID = CID-c72a7d30-ec64-4e4f-9a80-e6f9b6b1d78c; datanode clusterID = CID-e24b0548-2d8d-4aa4-9b8c-a336193c006e 

은 나뿐만 아니라 Datanode not starts correctly이 링크를 따라하지만 난 선택해야하는 클러스터 ID를 잘 모릅니다. 만약 내가 선택한 다음 데이터 노드가 해당 컴퓨터에서 시작되지만 다른 컴퓨터 노드에서는 시작되지 않습니다. 또한 기본 명령 (hadoop namenode - 형식)을 사용하여 namenode를 포맷 할 때 각 슬레이브 노드의 데이터 노드가 시작되지만 마스터 시스템의 namenode는 시작되지 않습니다.

답변

9

데이터 노드와 이름 노드의 ClusterID가 일치해야만 데이터 노드 만 namenode와 효과적으로 통신 할 수 있습니다. 네임 노드 형식을 사용하는 경우 새 ClusterID가 네임 노드에 할당되고 데이터 노드의 ClusterID가 일치하지 않습니다.

당신은/홈/pushuser1/하둡/tmp를/DFS/데이터/전류/(데이터 노드 디렉토리)뿐만 아니라 네임 노드 디렉토리 (에 VERSION 파일을 찾을 수 있습니다/홈/pushuser1/하둡/tmp를/DFS/이름/현재/dfs.namenode.name.dir에 지정된 값을 기반으로 함). 다시 다음 디렉토리

rm -rf /home/pushuser1/hadoop/tmp/dfs/data/* (Need to execute on all data nodes) 
rm -rf /home/pushuser1/hadoop/tmp/dfs/name/* 

및 형식 HDFS 안에 당신이 당신의 HDFS의 네임 노드, 모든 HDFS 서비스를 중지 형식에 대한 준비가되어있는 경우

, 지우기 밖으로 모든 파일 (hadoop namenode -format)

관련 문제