상단

분산 처리 시스템의 관리 솔루션인 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

 
 

참고 문헌


 
 

분류: Cloud 
BigData

최종 수정일: 2024-09-30 12:26:18

이전글 :
다음글 :