복붙노트

[HADOOP] Hadoop 2.x의 2 차 NameNode 사용 및 고 가용성

HADOOP

Hadoop 2.x의 2 차 NameNode 사용 및 고 가용성

아래 시나리오를 도와주세요.

1) Hadoop V2를 사용하면서 프로덕션 환경에서 Secondary NameNode를 사용합니까?

2) Hadoop V2의 경우 고 가용성을 위해 액티브 / 패시브 연결에서 여러 NameNodes를 사용하고 편집 로그 파일이 커지면,

편집 로그는 fsimage에 어떻게 적용됩니까? 그렇다면, 거대한 편집 로그를 네임 노드에 적용하는 것은 네임 노드를 시작할 때 시간이 많이 걸릴 것입니까? (우리는이 문제를 해결하기 위해 hadoop v1에서 Secondary NameNode를 가졌다.)

해결법

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

    1.귀하의 질의에 대한 답변 :

    귀하의 질의에 대한 답변 :

    1) Hadoop V2를 사용하면서 프로덕션 환경에서 Secondary NameNode를 사용합니까?

    이름 노드의 고 가용성에 대해 StandByName 노드를 배포하는 경우 프로덕션 환경에서 보조 이름 노드가 필요하지 않습니다.

    2) 2 차 노드가 없을 때 편집 로그가 fsimage에 어떻게 적용됩니까?

    이 쿼리에 대답하려면 두 가지 방법으로 Hadoop에서 고 가용성을 구현 한 방법을 이해해야합니다. : NFS Federation을 통한 QJM 및 고 가용성을 통한 고 가용성

    그러나이 두 가지 접근 방식에서는 QJM (Quorum Journal Manager)이 선호됩니다.

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

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

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

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

    내 다른 StackOverFlow 질문에서 이름 노드에 대한 장애 조치 프로세스를 자세히 설명했습니다. Hadoop Namenode 장애 조치 프로세스는 어떻게 작동합니까?

  2. ==============================

    2.1) Hadoop V2를 사용하면서 프로덕션 환경에서 Secondary NameNode를 사용합니까?

    1) Hadoop V2를 사용하면서 프로덕션 환경에서 Secondary NameNode를 사용합니까?

    프로덕션 환경 설정 방법에 따라 완전히 다릅니다. HA에서 Hadoop V2를 사용하는 경우 Slave NameNode가 Secondary NameNode와 동일한 작업을 최적의 방식으로 수행하므로 프로덕션 환경에서 Secondary NameNode가 필요하지 않습니다. 그러나 프로덕션 설정에서 NameNode HA를 사용하지 않는 경우 체크 포인트에 Secondary NameNode를 사용해야합니다. 이에 대한 더 자세한 정보는 Hadoop 2.x 아키텍처와 악마를 참조하십시오.

    2) Hadoop V2의 경우 고 가용성을 위해 액티브 / 패시브 연결에서 여러 NameNodes를 사용하고 편집 로그 파일이 커지면,

    내 이해에 따라 여기에서 가장 중요한 관심사는 "Hadoop V2에서 NameNode HA로 편집 로그를 관리하는 방법"입니다.

    대답은 다음과 같습니다. QJM (Quorum Journal Manager) 또는 NFS 공유 저장소로 로그 편집을 수행 할 수 있습니다.

    QJM에는 JournalNode (JN)라는 악마 그룹이 활성 NameNode와 통신하고 있습니다. 이 그룹은 활성 NameNode에 의해 수행 된 모든 업데이트를 계속 찾고 상태를 유지 관리합니다. StandBy NameNode는 지속적으로 JN에서 편집 로그 업데이트를 받고 업데이트 된 editlog 파일을 유지 관리합니다.

    NFS 공유 저장소에서 Active NameNode와 StandBy NameNode는 모두 공유 저장소 (예 : Network File System)의 특정 디렉토리에 대한 액세스 권한을가집니다. NameNode가 업데이트를 완료하면 이벤트를 공유 디렉토리에 기록합니다. 반면 StandBy NameNode는 동일한 공유 디렉토리에서 업데이트 된 것을 찾고 동시에 편집 로그를 업데이트합니다.

    이게 도움이 되길 바란다...

  3. from https://stackoverflow.com/questions/33494697/secondary-namenode-usage-and-high-availability-in-hadoop-2-x by cc-by-sa and MIT license