Zookeeper 소개

 

·       Version : Zookeeper

 

주키퍼(Zookeeper) 분산 코디네이터 서비스(Distributed Coordinator Service) 제공하는 아파치 오픈소스이다. 분산 환경에서 , 네이밍 서비스, 클러스터 멤버십 등을 쉽게 구현할 있는 기능을 제공한다. (주키퍼 자체적으로 기능을 제공하지 않으며, 기능을 쉽게 만들 있는 메커니즘을 제공) 주키퍼를 이용하는 대표적인 사례는 아래와 같다.

·       네임 서비스, 환경설정, 그룹 멤버십

·       Double Barriers

·       우선순위 (Priority Queues)

·       공유 제어

·       단계 커밋 (Tow-phased commit)

·       리더 선출

 

주키퍼는 n개의 서버와 클라이언트 API 구성되어 있으며, 서버는 파일 시스템과 비슷한 형태로, 데이터를 계층적으로 저장한다. 저장된 데이터는 주키퍼 서버들 사이에 복제되어 운영되기 때문에 일부 서버에 장애가 발생하더라도 전체 장애로 이어지지는 않는다.

 

 

주키퍼 서버에 데이터 추가, 삭제, 변경 등과 같은 상태 변경이 발생하면, 주키퍼 서버는 클라이언트로 변경 사항을 전달하는 이벤트를 발생 시킨다. 주키퍼 클라이언트 라이브러리는 단순한 가지 연산만 제공하며, 사용자 어플리케이션은 라이브러리를 이용하여 주키퍼 서버에 데이터를 저장, 삭제하는 연산을 수행하거나 이벤트를 등록한다.

·       create : creates a node at a location in the tree

·       delete : deletes a node

·       exists : tests if a node exists at a location

·       get data : reads the data from a node

·       set data : writes data to a node

·       get children : retrieves a list of children of a node

·       sync : waits for data to be propagated

 

주키퍼는 파일 시스템과 유사한 계층적인 네임스페이스를 제공한다. 하지만 일반적인 파일 시스템과 달리, 주키퍼에서는 모든 노드에 데이터를 저장할 있다. 주키퍼는 클라이언트 라이브러리를 이용해 네임 스페이스에 대한 조회나 노드에 저장된 데이터를 원격 클라이언트에서 접근할 있다.

주키퍼 노드를 식별하는 식별자는 파일 시스템 디렉터리 구조와 동일하게 ‘/’ 구분되는 문자열이다. 상대 경로를 나타내는 ‘.’, ‘..’ 사용시 주의해야한다. 패스(path)명으로 사용할 수는 있지만 상대 경로가 아닌 문자 자체로 인식하기 때문이다. 아래 케이스는 패스에 사용할 없다.

·       Null 문자(0x00)

·       \u001 - \u0019, \u007F - \u009F

·       \ud800 - \uF8FFF, \uFFF0 - \uFFFF, \uXFFE - \uXFFFF, \uF0000 - \uFFFF

·       zookeeper : 시스템에서 사용하는 예약어

 

주키퍼의 모든 데이터는 서버 메모리에 저장하기 때문에 주키퍼에 저장할 있는 데이터 용량은 주키퍼 데몬 서버가 할당받은 메모리 영역을 초과할 없다. 따라서 일반적으로 시스템 관리, 모니터링, 관리등에 필요한 메타 정보만 저장한다. 데이터는 메모리에 존재하지만 트랜잭션 로그와 스냅샷 파일은 로컬 디스크에 저장하여 주키퍼 서버를 재시작 하였을 때에도 데이터는 그대로 유지된다.

 

 

[참고자료]

·       https://zookeeper.apache.org/doc/r3.6.1/zookeeperOver.html

 

 

2020-05-05 / Sungwook Kang / http://sungwookkang.com

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, 주키퍼, Zookeeper, 분산 코디네이션

'SW Engineering > Hadoop' 카테고리의 다른 글

ZooKeeper Stat Structure  (0) 2020.05.08
ZooKeeper 시간 동기화와 네임스페이스 z노드  (0) 2020.05.07
Zookeeper 소개  (0) 2020.05.06
HUE에서 10만행이상 브라우저에 출력하기  (0) 2020.02.19
Hive 쿼리 - not like  (0) 2020.02.13
Hive 파일 압축  (0) 2020.02.07

+ Recent posts