Hadoop Eco System의 분산 코디네이션 서비스
- 분산
- 여러 위치나 시스템에 걸쳐 분산되어 제공되는 서비스를 의미
- 중앙 집중화된 구조가 아니라
여러 지리적 위치나 서버에 분산되어 있는 형태- 분산되어 있는 여러 서버를 하나의 서버처럼 다루는 시스템
- Coordinate
- 프로세스가 함께 무언가를 해야 한다는 것을 의미하며,
프로세스는 다른 프로세스가 발전할 수 있도록 조치를 취합니다.
- 분산 코디네이션 서비스
- 분산 시스템에서 시스템 간의
정보 공유, 상태 체크, 서버들 간의 동기화를위한 락 등을 처리해주는 서비스
- 해당 서비스를 제공하는 오픈소스 프로젝트로,
직접 애플리케이션 작업을 조율하는 것을 쉽게 개발할 수 있도록 하는 도구
- API를 이용해 동기화나 마스터 선출 등의 작업을 쉽게 구현
- 일반적으로 N개의 Zookeeper 서버의 집합인
Ensemble
로 구성되고 이Ensemble
은leader-follower
구조를 사용한다.
- Leader가 Follwer에게 동기화를 위한 명령을 내린다.
- 각 애플리케이션의 정보를 중앙 집중화, 그룹 관리, 네이밍, 동기화
- Zookeeper의 데이터는 메모리에 저장되고, 영구 저장소에 스냅샷 저장
Zookeeper는 Cluster로 구축한다.
클러스터
로 구축한다.앙상블(클러스터)
로 구성하고,상태 정보
등을 주고 받는다.지노드(znode)
라고 불리는 곳에 Key-Value 형태
로 저장하며, 지노드에 저장된 것을 이용하여 분산 어플리케이션들은 서로 데이터를 주고받게 된다.파일
이나 폴더
개념디렉터리
Zookeeper가 상태를 저장하는 곳
상태 구조 유지
원자적으로 읽고 쓴다.
- 순차적 일관성
- 클라이언트의 업데이트는 전송된 순서대로 적용
- 원자성
- 업데이터가 성공하거나 실패한다. 즉, 부분 결과는 없다.
- 단일 시스템 이미지
- 클라이언트는 연결된 서버에 관계없이 동일한 서비스 보기를 보게 된다.
- 즉, 클라이언트가 동일한 세션을 사용하여 다른 서버로 장애 조치하더라도 클라이언트는 시스템의 이전 보기를 볼 수 없다.
- 안정성
- 업데이트가 적용되면 클라이언트가 업데이트를 완료될 때 까지 해당 시간 지속된다.
- 적시성
- 시스템의 클라이언트 보기는 특정 시간 범위 내에서 최신 상태로 보장된다.