💡 Failover controller란 주키퍼가 active NN에 문제가 발생하는 경우 active를 내리고 standby상태에 있는 NN을 active로 전환 시키는 기능을 말한다.
주키퍼 장애 복구 컨트롤러 ZKFC ( ZookeeperFailoverController ) 는 Zookeepr Client 로써 동작한다. 자신이 실행되고 있는 서버 위에서 실행되는 Name Node 의 상태를 heartbeat 를 통해 모니터링 한다. (네임 노드가 동작하는 서버에 zkfc 도 같이 동작하면서 네임 노드 상태를 모니터링함)
또한 평소(Name Node 가 정상 동작할 때)에 Zookeeper 와 zkfc 간 세션을 유지.
주키퍼 Failover controller → ZKFC 라고 한다.
특징)
1. 상태 모니터링
ZKFC는 NN과 같은 호스트에 설치해 사용하게 되는데 local에 존재하는 NN에 계속해서 신호를 보내 정상 상태로 응답하는 경우 이를 정상이라고 간주하고, timeout 시간이 지나도록 응답이 없는 경우 이를 장애 상황으로 판단한다.
2. ZooKeeper 세션 관리
local NN이 정상일 때 Zookeeper과의 세션을 유지하여 정상 상태임을 알 수 있는데, 세션이 만료되면(NN에 장애가 발생하면) 이를 끊어 Zookeeper 측에서도 장애를 감지할 수 있도록 하는 역할
3. Zookeeper 기반 선택
장애가 발생한 경우 Zookeeper을 기반으로 새로운 NN을 선택하고 선택된 NN이 active상태로 변경
4. Fencing
Fencing은 ZKFC에서 NN을 전환하는 과정에서 기존에 active로 동작하던 NN이 종료되지 않을 가능성을 생각해 active NN에 종료 명령을 내리는 것을 말하는데 확인 사살을 하는 느낌으로 두 개의 active NN이 올라오는 것을 방지하기 위한 기법이다
진행 과정)
- 만약 Active Name Node 의 상태가 비정상이*(heartbeat ***감지가 안되는 경우) 되면, 이를 감지하여 zkfc 와 Zookeeper 간 세션을 종료한다.
- 이때 주키퍼는 Standby name node 를 Active Name node 로 승격시키고 기존의 Active Name Node 를 제거한다.
- 이어서 주키퍼는 대표자 선출 기능*(leader election)*을 사용하여 여러 standby name node 중 active name node 가 될 노드를 결정한다.
- 위 과정에서 ZKFC는 단 하나의 네임 노드만 활성 상태에 있는 것을 보장한다.
'데엔(Data-Engineering) > 하둡(Hadoop)' 카테고리의 다른 글
HDFS 휴지통 (1) | 2023.04.09 |
---|---|
네임노드 & 데이터노드 (0) | 2023.04.08 |
Manager 전환 이슈 (0) | 2023.04.08 |
HDFS 저장 용량 확보 과정 (1) | 2023.04.08 |
Why Hadoop? (0) | 2022.11.08 |
댓글