2011-12-18 2 views
3

이 시나리오에서 일어나는 상황은 다음과 같습니다. 네임 노드는 두 개의 다른 드라이브에있는 두 개의 디렉토리에 쓰기 중 하나는 로컬이고 다른 하나는 원격 (원격)으로 마운트됩니다. 이제 namenode가 실패하고 원격 시스템에서 namenode 프로세스를 시작합니다 (원래 namenode 데이터의 복사본이 있으므로 안전합니다). 그리고 모든 datanode에서 namenode의 ip를 변경합니다. 얼마 후, 우리는 원래의 namenode를 정확히 이전의 구성으로 유지합니다. 원격 시스템에서 namenode 프로세스를 중지합니다. 이제 로컬 fs.name.dir은 마운트 된 디렉토리와 동기화 될 것인가? (원래의 namenode가 다운되었지만 마운트 된 dir에 누적 된 diff를 의미한다) namenode 데이터 일관성에 문제가있을 것인가?실패 후 hadoop namenode dirs가 동기화됩니까?

답변

0

로컬 fs.name.dir은 마운트 된 디렉토리와 동기화됩니다 (원래 namenode가 다운되었지만 마운트 된 dir에 누적 된 diff를 의미). 또는 namenode에 문제가 있습니다. 데이터 일관성?

로컬 NN 데이터는 다운 된 동안 오래된 것입니다. 리모트에서 NN 네임 스페이스에 수행 된 모든 변경 사항은 로컬 NN에 없을 것입니다.

참고 NN보다 파일 시스템의 네임 스페이스와 네임 스페이스 - 블록 ID 매핑 만 저장합니다. 블록이 저장된 위치는 NN에 저장되지 않습니다. DN이 시작되면 블록 보고서가 NN으로 전송됩니다.

HDFS NN HA에서 thisthis을 확인하십시오.

모든 datanode에 대한 namenode의 IP를 변경하십시오. 잠시 후, 우리는 원래의 namenode를 정확히 이전 구성으로 유지합니다. 원격 시스템에서 namenode 프로세스를 중지합니다.

위에서 언급 한 시나리오의 작동 중지 시간이 있습니다.