Hadoop 장애

김응진·2024년 8월 8일
0

장애 내용 및 처리 결과

Hadoop의 NameNode1, NameNode2가 standby 상태로 장애가 발생하여 파악해본 결과
DFSZKFailoverController가 내려가 있는 것으로 확인했습니다.

각 NameNode에서 다음 명령어를 사용하여 DFSZKFailoverController를 시작했습니다.

hadoop-daemon.sh start zkfc

주요 기능 및 역할

DFSZKFailoverController는 Hadoop HDFS(Distributed File System)의 고가용성(HA)을 구현하기 위한 구성 요소 중 하나입니다. Hadoop의 고가용성은 NameNode의 장애가 발생하더라도 클러스터의 지속적인 가용성을 보장하기 위해 중요합니다. DFSZKFailoverController는 ZooKeeper와 연동하여 NameNode의 자동 페일오버(자동 전환)를 관리합니다. 이를 통해 하나의 NameNode가 장애가 발생하면 자동으로 다른 NameNode로 전환됩니다.

1. ZooKeeper와의 통합

DFSZKFailoverController는 Apache ZooKeeper와 통합되어 NameNode의 상태를 모니터링하고 관리합니다. ZooKeeper는 분산 환경에서의 동기화 서비스로서, NameNode의 활성/비활성 상태를 관리하는 데 사용됩니다.

2. 자동 페일오버

활성 NameNode가 실패하면 DFSZKFailoverController는 자동으로 대기 중인 비활성 NameNode를 활성화하여 서비스 중단을 최소화합니다.

3. 상태 모니터링

DFSZKFailoverController는 지속적으로 NameNode의 상태를 모니터링합니다. 만약 활성 NameNode가 응답하지 않으면 ZooKeeper를 통해 장애를 감지하고 페일오버 절차를 시작합니다.

4. 페일오버 트리거

페일오버를 트리거하는 주요 조건은 NameNode의 응답 불가 상태입니다. DFSZKFailoverController는 이러한 조건을 감지하고 ZooKeeper의 지원을 받아 자동으로 페일오버를 수행합니다.

5. Heartbeat 메커니즘

DFSZKFailoverController는 NameNode와 주기적으로 통신(heartbeat)을 하여 상태를 확인합니다. 응답이 없거나 비정상적인 경우 페일오버가 트리거됩니다.

주요 구성 요소 요약

DFSZKFailoverController: NameNode의 자동 페일오버를 관리하는 데몬.
ZooKeeper: 분산 시스템의 동기화를 관리하는 서비스.
NameNode: HDFS의 메타데이터를 관리하는 노드. HA 설정에서는 두 개 이상의 NameNode가 존재.
JournalNode: NameNode의 편집 로그를 공유하여 데이터 일관성을 유지.

profile
Developer

0개의 댓글