복붙노트

[HADOOP] Hadoop Namenode 장애 조치 프로세스는 어떻게 작동합니까?

HADOOP

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

하둡 최종 가이드는 말한다 -

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

누구에게 하트 비트를 보냅니 까?

이 프로세스가 실행되는 위치는?

namenode 실패를 어떻게 감지합니까?

전환에 대해 누구에게 통보합니까?

해결법

  1. ==============================

    1.아파치 문서에서

    아파치 문서에서

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

    상태 모니터링 - ZKFC는 헬스 체크 명령을 사용하여 주기적으로 로컬 NameNode를 핑 (ping)합니다. NameNode가 건강한 상태로 적시에 응답하는 한, ZKFC는 노드를 건강하다고 간주합니다. 노드가 손상되었거나 고정되었거나 비정상 상태가 된 경우, 상태 모니터는이를 비정상으로 표시합니다.

    ZooKeeper 세션 관리 - 로컬 NameNode가 정상적인 경우 ZKFC는 ZooKeeper에서 세션을 엽니 다. 로컬 NameNode가 활성화되어 있으면 특수 "잠금"z 노드도 보유합니다. 이 잠금은 "일시적인"노드에 대한 ZooKeeper의 지원을 사용합니다. 세션이 만료되면 잠금 노드가 자동으로 삭제됩니다.

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

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

    슬라이드 16에서

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

    :

    Hadoop의 자동 네임 노드 장애 조치 프로세스 :

    Standby 네임 노드가 활성 네임 노드와 동기화 된 상태를 유지하려면 두 노드 모두 JournalNodes (JN)라고하는 별도의 데몬 그룹과 통신합니다.

    액티브 노드에 의해 네임 스페이스 수정이 수행되면,이 레코드는 대다수의 해당 JN에 변경 기록을 남겨 둡니다. 대기 노드는 JN에서 이러한 편집 내용을 읽고 자체 이름 공간에 적용합니다.

    페일 오버가 발생하면 Standby는 JounalNodes의 편집 내용을 모두 읽은 후에 자신을 활성 상태로 승격시킵니다. 이렇게하면 장애 조치가 발생하기 전에 네임 스페이스 상태가 완전히 동기화됩니다.

    한 번에 NameNodes 중 하나만 Active 임으로 HA 클러스터에 필수적입니다. ZooKeeper는 이름 노드 상태가 장애 조치로 인해 분기되지 않도록 분할 뇌 상황을 피하기 위해 사용되었습니다.

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

    :

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

  2. from https://stackoverflow.com/questions/33311585/how-does-hadoop-namenode-failover-process-works by cc-by-sa and MIT license