분산 처리 시스템의 관리 솔루션인 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
최종 수정일: 2022-10-24 19:17:28
이전글 :
다음글 :