만들기/EagleEye

[EagleEye][환경세팅] 주키퍼 설치

pythaac 2022. 4. 26. 02:54

https://twofootdog.tistory.com/89

 

리눅스에 주키퍼(zookeeper) 설치하기

지난 글에서는 아파치 카프카(Apache Kafka)의 정의에 대해서 알아보았다. 이번 글에서는 아파치 카프카를 관리하기 위해서는 반드시 필요한 코디네이션 애플리케이션인 주키퍼(Zookeeper)를 설치 실

twofootdog.tistory.com

준비

  • root 계정으로 변경
    >> su
  • 호스트네임 변경
    >> hostnamectl set-hostname zk01

 

주키퍼 다운로드

 

주키퍼 설정

  • 데이터 디렉토리 설정
    >> mkdir -p /data
  • 노드 구분을 위한 ID(myid) 설정
    >> echo 1 > /data/myid
  • 주키퍼 환경설정 파일 생성
    >> vi /usr/local/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data
clientPort=2181
server.1=zk01:2888:3888
server.2=zk02:2888:3888
server.3=zk03:2888:3888
- tickTime : 주키퍼가 사용하는 시간에 대한 기본 측정 단위(밀리초)
- initLimit : 팔로워가 리더와 초기에 연결하는 시간에 대한 타임아웃 tick의 수
- syncLimit : 팔로워가 리더와 동기화 하는 시간에 대한 타임아웃 tick의 수(주키퍼에 저장된 데이터가 크면 더 크게 잡아야 함)
- dataDir : 주키퍼의 트랜잭션 로그와 스냅샷이 저장되는 저장경로. 이 글에서는 /data로 생성했었기 때문에 zoo.cfg에서도 /data로 지정함
- clientPort : 주키퍼 사용 TCP 포트
- server.x : 주키퍼 앙상블 구성을 위한 서버 설정. server.myid 형식으로 사용. 2888:3888은 기본 포트이며, 앙상블 내 노드끼리 연결 & 리더 선출에 사용

 

호스트파일 및 방화벽 설정

  • 호스트네임 추가
    >> vi /etc/hosts
{서버 ip} zk01
  • 방화벽 열기
    >> ufw allow 2181 && ufw allow 2888 && ufw allow 3888

 

주키퍼 실행하기

  • 주키퍼 실행
    >> /usr/local/zookeeper/bin/zkServer.sh start
  • 주키퍼 실행 중지 방법
    >> /usr/local/zookeeper/bin/zkServer.sh stop
  • 실행 확인
    >> /usr/local/zookeeper/bin/zkServer.sh status

 

systemd로 주키퍼 관리하기

  • 파일 생성
    >> vi /etc/systemd/system/zookeeper-server.service
[Unit]
Description=zookeeper-server
After=network.target

[Service]
Type=forking
User=root
Group=root
SyslogIdentifier=zookeeper-server
WorkingDirectory=/usr/local/zookeeper
Restart=always
RestartSec=0s
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
  • systemd 재시작
    >> systemctl daemon-reload
  • 주키퍼 실행
    >> systemctl start zookeeper-server