"ZooKeeper"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
(차이 없음)
|
2013년 11월 26일 (화) 14:07 기준 최신판
분산 처리 시스템의 관리 솔루션인 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
참고 문헌
- creatorw