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

최종 수정일: 2022-10-24 19:17:28

이전글 :
다음글 :
상단 menu
arrow_back_ios
arrow_forward_ios