- ZooKeeper 개요
- CentOS에서 ZooKeeper 설치
- ZooKeeper Schema
- ZooKeeper 매뉴얼
- ZooKeeper 개발 매뉴얼
- 참고 문헌
분산 처리 시스템의 관리 솔루션인 ZooKeeper를 정리 합니다.
홈페이지 : http://zookeeper.apache.org/
다운로드 : http://apache.tt.co.kr/zookeeper/stable/zookeeper-3.4.4.tar.gz
라이센스 : Apache 2.0
플랫폼 : Java
ZooKeeper 개요
분산 환경에서 서버들간의 상호 조정
부하 분산 : 서비스 분산
서비스 동기화
장애시 다른 서버로 서비스 전환
환경 설정 관리 : 환경 설정 통합 관리
분산락
vi conf/zoo.cfg
CentOS에서 ZooKeeper 설치
ZooKeeper를 다운로드하여 압축을 풉니다.
cd /nas/install
wget http://mirror.apache-kr.org/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz
tar zxvf zookeeper-3.4.5.tar.gz
chown -R root:root zookeeper-3.4.5
mv zookeeper-3.4.5 /appl/zookeeper
로그 설정
mkdir /appl/zookeeper/logs
vi /appl/zookeeper/conf/log4j.properties
zookeeper.log.dir=/appl/zookeeper/logs
zookeeper.tracelog.dir=/appl/zookeeper/logs
환경 설정
vi /appl/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10 ###--- 책임자 연결에 허용된 시간, 과반수 후보자가 초과시 다른 책임자 선출
syncLimit=5 ###--- 후보자에게 허용된 시간, 초과시 클라이언트는 다른 서버로 연결
clientPort=2181 ###--- Client 접속 port
dataDir=/tmp/zookeeper ###--- 데이터를 저장하는 폴더
#dataLogDir=/tmp/zookeeper ###--- 변경 로그를 저장하는 폴더
#--- ZooKeeper 서버별로 번호 부여, 2888. 후보자와 책임자 연결 port, 3888. 책임자 선출 port
server.1=cloud001.cloudserver.com:2888:3888
#server.2=cloud002.cloudserver.com:2888:3888
#server.3=cloud003.cloudserver.com:2888:3888
서버별로 ZooKeeper 번호 지정
mkdir /tmp/zookeeper
vi /tmp/zookeeper/myid ###--- zoo.cfg에서 dataDir 로 지정한 폴더에 myid 파일 생성
1
ZooKeeper Service 실행
zkServer.sh start
ZooKeeper Client를 실행하여 서비스 확인
zkCli.sh -server cloud001.cloudserver.com:2181
ls /
quit
ZooKeeper Schema
데이터 모델
/zookeeper : 주키퍼의 관리 정보 저장하는 폴더
znode : 계층적 tree, 최대 1MB의 데이터를 저장
Version : znode는 버전을 가집니다.
CreateMode : PERSISTENT, PERSISTENT_SEQUENTIAL, EPHEMERAL, EPHEMERAL_SEQUENTIAL
SEQUENTIAL 모드일 경우, node의 이름 뒤에 번호가 1씩 증가하면서 붙습니다. (공유락 구현등에서 사용)
감시 (Watch)
ZooKeeper 연산
create, exists, getChildren, getData, setData, delete
getACL, setACL
인증 : digest, host, ip
sync
API
Java (src/java), C (src/c), 기타 (src/contrib) 라이브러리 제공
동기 API, 비동 API 제공
고가용성 (ensemble)
전체 ZooKeeper 서버중 과반수 이상이 유지되는 동안 서비스 제공
예) 6대 ZooKeeper를 사용할 경우 2대에서 문제가 생길때까지는 정상 동작
ZooKeeper 매뉴얼
ZooKeeper 개발 매뉴얼
Classpath
zookeeper-3.4.5.jar
lib/*.jar
jline-0.9.94.jar, netty-3.2.2.Final.jar, slf4j-api-1.6.1.jar, slf4j-log4j12-1.6.1.jar
log4j-1.2.15.jar
conf/*
zoo.cfg
참고 문헌
[주키퍼(zookeeper)란?, 2011.1]](http://creatorw.tistory.com/entry/1-%EC%A3%BC%ED%82%A4%ED%8D%BCzookeeper-%EB%9E%80)
creatorw