ZooKeeper

오픈소스 비즈니스 컨설팅
Pnuskgh (토론 | 기여)님의 2013년 11월 26일 (화) 14:07 판 (→‎CentOS에서 ZooKeeper 설치)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 가기 검색하러 가기

분산 처리 시스템의 관리 솔루션인 ZooKeeper를 정리 합니다.

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