Zookeeper 설치
설치 환경
- Zookeeper 버전: zookeeper-3.5.8
- 운영체제: ubuntu-18.04.4-desktop-amd64
사전 작업
- 레파지토리 최신화
- sudo apt-get update
- sudo apt-get upgrade
Java 설치
zookeeper 계정 생성
adduser zookeeper
Zookeeper 바이너리 파일 다운로드 및 권한 설정
- Download: http://apache.tt.co.kr/zookeeper/stable/
- wget http://apache.tt.co.kr/zookeeper/stable/apache-zookeeper-3.5.8-bin.tar.gz
- sudo mv apache-zookeeper-3.5.8-bin /usr/local/
- sudo chown -R zookeeper:zookeeper apache-zookeeper-3.5.8-bin/
- sudo ln -s apache-zookeeper-3.5.8-bin/ zookeeper
환결 설정
- zookeeper 유져의 .profile에 home 디렉토리를 설정합니다.
- ZOOKEEPER_HOME=/usr/local/zookeeper
로그 디렉토리 생성
주키퍼는 zoo.cfg에 설정한 데이터 디렉토리에 지노드의 복사본인 스냅샷과 트랜잭션 로그들이 저장됩니다. 지노드에 변경사항이 발생하면, 이 변경사항은 트랜잭션 로그에 추가됩니다. 그리고 로그가 어느정도 커지면, 현재 모든 지노드의 상태 스냅샷이 파일시스템에 저장됩니다. 앙상블 내 주키퍼 노드를 구분하기 위해서 ID를 만듭니다. 주키퍼에서는 myid 라고 부르며 정수 형태로 만들어주면 됩니다. 방금 만든 /data 디렉토리 하단에 myid라는 파일을 만들고 내용은 1이라고 입력합니다. 여기서 myid는 주키퍼의 설정 파일에서 사용하게 되며, 예제 2-2의 zoo.cfg파일을 다루면서 다시 설명하겠습니다. 다른 주키퍼 서버들에도 myid 파일을 만들고 숫자를 입력합니다.
- sudo mkdir /var/log/zookeeper
- sudo chown zookeeper:zookeeper /var/log/zookeeper
- sudo su zookeeper
- echo 1 > /var/log/zookeeper/myid
- echo 2 > /var/log/zookeeper/myid
- echo 3 > /var/log/zookeeper/myid
zoo 설정파일 조정
- # Ref: https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_singleAndDevSetup
- cp zoo_sample.cfg zoo.cfg
- zoo.cfg 내용 (Clustered (Multi-Server) Setup)
server.1=zk1:2888:3888 #server.2=zk2:2888:3888 #server.3=zk3:2888:3888 tickTime=2000 initLimit=10 syncLimit=5 clientPort=2181 dataDir=/var/log/zookeeper - server.1=zk1:2888:3888
- server.2=zk2:2888:3888
- server.3=zk3:2888:3888
- myid와 호스트 이름 또는 ID주소:포트번호
- 포트번호 2888, 3888은 기본 포트이며 앙상블 내 노드끼리 연결하는데 사용하고, 리더 선출에 사용함
- tickTime: 주키퍼가 사용하는 시간에 대한 기본 측정 단위(밀리초)
- initLimit: 팔로워가 리더와 초기에 연결하는 시간에 대한 타임아웃 tick의 수
- syncLimit: 팔로워가 리더와 동기화 하는 시간에 대한 타임 아웃 tick의 수(주키퍼에 저장된 데이터가 크면 수를 늘려야 함)
- dataDir= 주키퍼의 트랜잭션 로그와 스냅샷이 저장되는 데이터 저장 경로
- clientPort: 주키퍼 사용 TCP포트
- server.x: 주키퍼 앙상블 구성을 위한 서버 설절이며, server.myid 형식으로 사용함
zoo 실행
- /usr/local/zookeeper/bin/zkServer.sh start
- ps -edf |grep zookeeper