zookeeper 설치 안내서

5668 단어
이 문서는 zookeeper-3.4.10 기반
환경 요구 사항
  • zookeeper-3.4.10,zookeeper 공식 사이트에서 미디어 다운로드
  • jdk7 이상
  • 고성능 디스크, 디스크 용량 권장 64G 이상
  • zookeeper 노드 개수 요구, n개의 호스트가 다운되는 경우 집단 노드 수량은 2n+1개
  • 설치 단계
    1. zookeeper 홈 만들기
    mkdir zookeeper
    cd zookeeper 
    mkdir data dataLog
    

    주의
  • 데이터는 zookeeper가 메모리 스냅샷을 저장하는 경로
  • 입니다.
  • 데이터 로그는 zookeeper가 사무 로그를 기록하는 경로
  • 입니다.
  • 데이터와 데이터 로그의 생성 위치는 강제 요구가 없습니다. 만약에 집단의 환경이 설치 문자와 일본식/데이터 저장 문자를 구분한다면 데이터와 데이터 로그는 데이터를 저장할 수 있는 전용 문자
  • 에 세워야 합니다.
    다음 글에서 zookeeper/zookeeper라고 부르는 홈 또는 $ZKHOME
    2. 미디어 압축 해제
    mv zookeeper-3.4.10.tar.gz zookeeper/
    tar -xzvf zookeeper-3.4.10.tar.gz
    

    3. 서버 id 구성
    데이터 경로에 들어가서 실행
    cd data
    echo '1' > myid
    cat myid
    

    주의 사항
  • myid는zookeeper 집단 중의 각zookeeper 노드의 신분 표지로서 중복할 수 없다. 순서대로 1, 2, 3......
  • zookeeper의 myid에는 한 줄의 데이터와 이 노드의 id 번호가 있고 숫자의 앞뒤에 빈칸이 있을 수 없고 위아래에 빈칸이 있을 수 없다
  • zookeeper 집단의 설치 설정 중 myid만 다르고 다른 설정은 모두 같다
  • 전체 그룹 설치 설정에서 myid의 내용이 다른 것을 제외하고는 다른 부분의 설정이 거의 똑같기 때문에 후속 설치 절차는 한 노드만 예로 들면 군말하지 않습니다.거의 그렇다는 것은 지난 절에서 언급한 데이터와 데이터 로그의 경로가 다를 수 있지만 일반적으로 생산적으로는 같기 때문이다.
    4.zoo 구성cfg
    zookeeper의 프로필 주소에 들어가서 프로필을 만들고 수정합니다
    cd $ZK_HOME
    cd conf
    cp zoo_sample.cfg  zoo.cfg
    vim zoo.cfg
    

    다음과 같이 구성을 수정합니다.
    # The number of milliseconds of each tick
    # zk     ,             ,      
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    # follower     leader          ,      
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    # 
    syncLimit=5
    # follower leader       
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    # zookeeper         ,          data   
    dataDir=/……/data
    # zookeeper         ,          dataLog   
    dataLogDir=/……/dataLog
    # the port at which the clients will connect
    #       ,      
    clientPort=2181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #      ,   60,      ,    
    #maxClientCnxns=60
    #
    # Be sure to read the maintenance section of the 
    # administrator guide before turning on autopurge.
    #
    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    #
    # The number of snapshots to retain in dataDir
    #               ,          ,           ,   3
    autopurge.snapRetainCount=3
    # Purge task interval in hours
    # Set to "0" to disable auto purge feature
    #       ,     
    autopurge.purgeInterval=1
    #       ,   zookeeper        
    # server.x   zookeeper   id, id  ip          myid      
    # ip                   ,         
    server.1=172.21.22.161:2888:3888
    server.2=172.21.22.162:2888:3888
    server.3=172.21.22.163:2888:3888
    

    여기서 주의해야 할 건요.
    server.1=172.21.22.161:2888:3888
    server.2=172.21.22.162:2888:3888
    server.3=172.21.22.163:2888:3888
    

    그 id 값은 이전에 만들어진 데이터의 myid 내용과 일치하고 IP는 서로 대응해야 한다.
    5. log4j 구성
    zookeeper의 기본 로그 출력은 zookeeper에 있습니다.out에서는 보기와 관리에 불리하며, 생산에서는 로그를 설정하는 것을 권장합니다.
    logs 경로 만들기
    cd $ZK_HOME
    mkdir logs
    

    logs 구축 위치 요구 사항 없음, 디스크 계획 있으면 필요에 따라 적당한 곳으로 구축
    log4j 설정
    # Console   ROLLINGFILE
    zookeeper.root.logger=INFO, ROLLINGFILE
    zookeeper.console.threshold=INFO
    #           logs    (    )
    zookeeper.log.dir=/……/logs
    zookeeper.log.file=zookeeper.log
    zookeeper.log.threshold=DEBUG
    zookeeper.tracelog.dir=.
    zookeeper.tracelog.file=zookeeper_trace.log
    
    # log4j        ,    
    

    zkEnv를 구성합니다.sh
    cd $ZK_HOME/bin
    cp zkEnv.sh zkEnv.sh.bak
    vim zkEnv.sh
    

    주로 두 곳을 수정하고, 한 곳은 ZOO 가입입니다.LOG_DIR 할당
    ZOOBINDIR="${ZOOBINDIR:-/usr/bin}"
    ZOOKEEPER_PREFIX="${ZOOBINDIR}/.."
    #            logs         )
    ZOO_LOG_DIR="/……/logs"
    

    다른 곳은
    if [ "x${ZOO_LOG4J_PROP}" = "x" ]
    then
        ZOO_LOG4J_PROP="INFO,CONSOLE"
    fi
    

    다음으로 수정
    if [ "x${ZOO_LOG4J_PROP}" = "x" ]
    then
        ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
    fi
    

    6.zookeeper 시작
    순서대로 모든 zookeeper 노드에 로그인하여 zookeeper 프로세스를 시작합니다
    cd $ZK_HOME
    bin/zkServer.sh start
    

    콘솔 디스플레이
    ZooKeeper JMX enabled by default
    Using config: /home/czdb/ghshen/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    

    이어서 상태 검사를 하고,
    프로세스 확인
    실행
    jps
    

    검사는 zk 프로세스입니다.
    22757 QuorumPeerMain
    

    QuorumPeerMain은 프로세스 이름이고, 22757은 프로세스 id이며, 다를 수 있습니다.
    검사 status
    bin/zkServer.sh status
    

    나타내다
    ZooKeeper JMX enabled by default
    Using config: /home/ds_dfpas/ghshen/usr/zookeeper/zookeeper-3.4.8/bin/../conf/zoo.cfg
    Mode: leader
    

    그룹 중 한 대가 리더로 표시되고 다른 노드가 이 명령을 실행합니다.
    ZooKeeper JMX enabled by default
    Using config: /home/ds_dfpas/ghshen/usr/zookeeper/zookeeper-3.4.8/bin/../conf/zoo.cfg
    Mode: follower
    

    로그 확인
    cd logs
    tail -f zookeeper.log
    

    로그에 지속적인 오류가 있는지 살펴보고 원인을 분석해 해결한 후 다시 시작합니다.
    클라이언트 가용성 확인
    zookeeper가 자체로 가지고 있는 클라이언트를 이용하여 수동으로 zookeeper에 연결하여 간단한 조회를 실행합니다
    cd $ZK_HOME
    # host port        
    bin/zkCli.sh -server host:port
    

    zookeeper에 연결하여 ls를 실행합니다
    [zk: localhost:2188(CONNECTED) 1] ls / 
    [zookeeper]
    [zk: localhost:2188(CONNECTED) 2] 
    

    결과를 [zookeeper]로 표시하면 됩니다.
    유사하게 모든 조키퍼 노드를 검사하면 됩니다.
    이로써 zookeeper 집단 설치가 끝났습니다.

    좋은 웹페이지 즐겨찾기