ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 주키퍼 설치 및 설정
    카테고리 없음 2023. 4. 18. 12:31

    주키퍼 설치 및 설정

    주키퍼를 설치 해보자. 다운로드 여기서 다운 받으면 되겠다 압축을 풀고 원하는 디렉토리에 넣어두자. 필자는 /usr/local/에 넣어 두었다. ${home}/conf/zoo.cfg 파일이 주키퍼 설정 파일이다.
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/var/zookeeper1
    clientPort=2184
    
    설정을 저장하자. 서버를 실행시켜보자!
    ./bin/zkServer.sh start
    
    JMX enabled by default
    Using config: /usr/local/zookeeper1/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    
    주키퍼 클라이언트를 이용해서 접속해보자!
    ./bin/zkCli.sh -server localhost:2184
    
    접속이 완료되었다. 간단하게 노드를 만들어보자.
    [zk: localhost:2184(CONNECTED) 0] create /zoo_test my_data
    Created /zoo_test
    
    만들어진 노드를 확인해보자
    [zk: localhost:2184(CONNECTED) 1] ls /
    [zoo_test, zookeeper]
    
    잘 만들어져 있다. 정보도 한번 보자.
    [zk: localhost:2184(CONNECTED) 2] get /zoo_test
    my_data
    cZxid = 0x500000007
    ctime = Wed Mar 02 08:37:55 UTC 2016
    mZxid = 0x500000007
    mtime = Wed Mar 02 08:37:55 UTC 2016
    pZxid = 0x500000007
    cversion = 0
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 7
    numChildren = 0
    
    다음은 replication 설정을 해보자 세개의 주키퍼가 필요하므로 세개를 복사하자. 필자는 이렇게 했다. /usr/local/zookeeper1 /usr/local/zookeeper2 /usr/local/zookeeper3 그리고 설정을 바꿔줘야한다. 다시 zoo.cfg 파일을 열어서 아래와 같이 바꾸자. /usr/local/zookeeper1
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/var/zookeeper1
    clientPort=2184
    server.1=localhost:2888:3888
    server.2=localhost:2889:3889
    server.3=localhost:2890:3890
    
    /usr/local/zookeeper2
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/var/zookeeper2
    clientPort=2185
    server.1=localhost:2888:3888
    server.2=localhost:2889:3889
    server.3=localhost:2890:3890
    
    /usr/local/zookeeper3
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/var/zookeeper3
    clientPort=2186
    server.1=localhost:2888:3888
    server.2=localhost:2889:3889
    server.3=localhost:2890:3890
    
    아래의 세줄이 추가 되었고 디렉토리가 변경되었다. 3개의 주키퍼 모두 바꾸자! 디렉토리는 각기 다르게! 물리적으로 서버가 같다면 포트를 나눠줘야한다. 2888 포트는 각각의 통신하기 위한 포트 3888은 마스터를 선출하기 위한 노드라 한다. server.1,server.2,server.3 의 숫자는 /var/zookeeper1/myid의 값과 동일해야된다.
    cat /var/zookeeper1/myid
    1
    cat /var/zookeeper2/myid
    2
    cat /var/zookeeper3/myid
    3
    
    세개의 노드를 실행해야된다. 귀찮다. 스크립트로 대충 만들었다
    #!/bin/bash
    
    param=$1
    
    ZOO1_HOME="/usr/local/zookeeper1/"
    ZOO2_HOME="/usr/local/zookeeper2/"
    ZOO3_HOME="/usr/local/zookeeper3/"
    
    case $param in
      start)
        $ZOO1_HOME/bin/zkServer.sh start
        $ZOO2_HOME/bin/zkServer.sh start
        $ZOO3_HOME/bin/zkServer.sh start
    
        ;;
      stop)
        $ZOO1_HOME/bin/zkServer.sh stop
        $ZOO2_HOME/bin/zkServer.sh stop
        $ZOO3_HOME/bin/zkServer.sh stop
        ;;
      restart)
        $0 stop
        sleep 1
        $0 start
        ;;
      *)
       echo  "Usage: $0 {start|stop|restart}"
    esac
    
    이제 실행해보자! 잘된다! 다시 접속해보자!
    ./bin/zkCli.sh -server localhost:2184
    
    그리도 노드를 한개더 생성해보자
    [zk: localhost:2184(CONNECTED) 0] create /test test
    Created /test
    [zk: localhost:2184(CONNECTED) 0] ls /
    
    test가 있는 걸 확인 후 빠져나오자 quit
    ./bin/zkCli.sh -server localhost:2185
    
    이번엔 2185로 접속해보자
    [zk: localhost:2185(CONNECTED) 0] ㅣls /
    
    test가 있는걸 확인 할 수 있다. 2186 포트는 마찬가지로 추가 되어있을 것이다. 별도로 주키퍼 관리할 수 있는 관리자 화면을 누군가가 만들었다. 클로저로 만들었으니 클로저를 설치하자! 주키퍼웹UI

    댓글

Designed by Tistory.