hadoop ha architecture



Hadoop Namenode 장애 조치 프로세스는 어떻게 작동합니까? (1)

하둡 결정 가이드에 따르면-

각 네임 노드는 간단한 하트 비트 메커니즘을 사용하여 네임 노드의 실패를 모니터하고 네임 노드가 실패 하면 페일 오버를 트리거하는 경량 페일 오버 제어기 프로세스를 실행 합니다.

네임 노드는 어떻게 자신의 실패를 감지하기 위해 무언가를 실행할 수 있습니까?

누가 하트 비트를 보냅니 까?

이 프로세스는 어디에서 실행됩니까?

네임 노드 실패를 어떻게 감지합니까?

전환을 알리는 사람은 누구입니까?


Apache 문서에서

ZKFC (ZKFailoverController)는 ZooKeeper 클라이언트 인 새로운 구성 요소로 NameNode의 상태를 모니터링하고 관리합니다. NameNode 를 실행하는 각 머신은 ZKFC 도 실행하며 해당 ZKFC 는 다음을 담당합니다.

상태 모니터링 -ZKFC 는 상태 확인 명령을 사용하여 주기적으로 로컬 네임 노드 를 ping합니다. NameNode가 적절한 상태로 적시에 응답하는 한 ZKFC 는 노드를 정상으로 간주합니다. 노드가 충돌하거나 작동 중지되었거나 비정상 상태로 진입 한 경우 상태 모니터는 해당 상태를 비정상 상태로 표시합니다.

ZooKeeper 세션 관리 -로컬 네임 노드가 정상이면 ZKFC 는 ZooKeeper에서 열린 세션을 유지합니다. 로컬 네임 노드가 활성화되어 있으면 특별한 " 잠금 "z 노드도 보유합니다. 이 잠금은 ZooKeeper의 " 임시 "노드 지원을 사용합니다. 세션이 만료되면 잠금 노드가 자동으로 삭제됩니다.

ZooKeeper 기반 선거 -로컬 네임 노드 정상 이고 ZKFC 가 현재 잠금 znode를 보유하고있는 다른 노드가없는 것을 발견하면 자체적으로 잠금을 획득하려고 시도합니다. 성공하면 " 선거 당선 "이되며 로컬 NameNode를 활성화하기 위해 장애 조치를 실행합니다.

HDFS-2185 JIRA 문제의 일부인이 Apache PDF 를 살펴보십시오

슬라이드 16에서

http://www.slideshare.net/cloudera/hdfs-update-lipcon-federal-big-data-apache-hadoop-forum

:

하둡에서의 자동 네임 노드 페일 오버 프로세스 :

일반적인 HA 클러스터에서는 두 개의 개별 시스템이 NameNode로 구성됩니다. 어느 시점에서나 정확히 하나의 네임 노드는 활성 상태에 있고 다른 하나는 대기 상태에 있습니다. Active NameNode는 클러스터의 모든 클라이언트 작업을 담당하는 반면 대기는 단순히 슬레이브로 작동하여 필요한 경우 빠른 장애 조치를 제공하기에 충분한 상태를 유지합니다.

대기 이름 노드가 상태를 활성 이름 노드와 동기화되도록하기 위해 두 노드는 모두 저널 노드 (JN)라는 별도의 데몬 그룹과 통신합니다.

네임 스페이스 수정이 능동 노드에 의해 수행 될 때, 대부분의 JN에 수정 레코드를 지속적으로 기록합니다. 대기 노드는 JN에서 이러한 편집을 읽고 자체 네임 스페이스에 적용합니다.

장애 조치 (failover)가 발생하는 경우 대기 모드는 활성 상태로 승격하기 전에 JounalNodes에서 모든 편집 내용을 읽었는지 확인합니다. 따라서 장애 조치가 발생하기 전에 네임 스페이스 상태가 완전히 동기화됩니다.

한 번에 하나의 네임 노드 만 활성화되는 것이 HA 클러스터에 필수적입니다. ZooKeeper 는 분할 브레인 시나리오를 피하기 위해 사용되어 장애 조치로 인해 이름 노드 상태가 분기되지 않습니다.

슬라이드 8 : http://www.slideshare.net/cloudera/hdfs-futures-world2012-widescreen

:

요약 : 이름 노드는 데몬 및 장애 조치 컨트롤러는 데몬 입니다. 이름 노드 데몬이 실패하면 장애 조치 컨트롤러 데몬이이를 감지하고 수정 조치를 수행합니다. 전체 시스템이 충돌하더라도 ZooKeeper 서버가이를 감지하여 잠금이 만료되고 다른 대기 이름 노드가 활성 이름 노드로 선택됩니다.





namenode