Zookeeper #2. 설치와 설정

Zookeeper #1. 개요
Zookeeper #2. 설치와 설정
Zookeeper #3. 구동과 확인

Kafka #1. 개요
Kafka #2. 설치

대충.. 이렇게 구성 해보자..
2888은 leader만 오픈 한다는 것을 기억하자.

1. 다운로드 및 압축 해제
Apache zookeeper 홈페이지에서 필요한 버전을 선택하거나 여기를 클릭하여1글 작성일 2020년 09월01일 기준으로 최신버전은 3.6.1이다.다운로드 한다.
– 다운로드한 파일을 FTP 또는 SFTP등을 이용하여 서버에 업로드한다.
– 또는 wget 명령을 이용하여 서버에서 다운로드 한다.

[kafka@kafka ~]$ wget http://apache.tt.co.kr/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
--2020-09-01 08:27:41--  http://apache.tt.co.kr/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
Resolving apache.tt.co.kr (apache.tt.co.kr)... 211.47.69.77
Connecting to apache.tt.co.kr (apache.tt.co.kr)|211.47.69.77|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9394700 (9.0M) [application/x-gzip]
Saving to: ‘apache-zookeeper-3.5.8-bin.tar.gz’

100%[========================================================================>] 9,394,700   72.0KB/s   in 2m 6s

2020-09-01 08:29:47 (72.8 KB/s) - ‘apache-zookeeper-3.5.8-bin.tar.gz’ saved [9394700/9394700]

[kafka@kafka ~]$ ll
합계 91272
-rw-r--r--  1 kafka kafka 12436328  5월  1 04:53 apache-zookeeper-3.6.1-bin.tar.gz
drwxrwxr-x 76 kafka kafka     4096  9월  1 08:29 data
drwxr-xr-x  7 kafka kafka      245  8월 13 07:54 jdk1.8.0_251
lrwxrwxrwx  1 kafka kafka       16  8월 12 09:00 kafka -> kafka_2.13-2.6.0
drwxr-xr-x  9 kafka kafka      182  8월 13 09:48 kafka_2.13-2.6.0
-rw-r--r--  1 kafka kafka 65537909  8월  5 07:01 kafka_2.13-2.6.0.tgz
drwxrwxr-x  2 kafka kafka        6  8월 12 09:07 perl5

– 압축을 해제하고 심볼릭 링크를 생성한다.2Symbolic-Link:윈도우즈의 바로가기 lnk파일과 유사하다. 3심볼릭 링크를 사용하면 환경 변수의 관리가 편리하다. 예제의 경우 압축을 해제하면 ‘apache-zookeeper-3.6.1-bin’ 라는 이름의 디렉토리가 생성되는데 이 이름으로 환경 변수를 등록하여 운영 중 zookeeper 판올림을 할경우 환경변수를 변경 해야 한다. 또 ‘zookeeper’라는 이름으로 변경을 했을 경우 동일한 디렉토리에 파일을 교체해야 하므로 별도로 파일을 이동해줘야 하지만 심볼링 링크로 연결 했을 경우는 링크만 변경 하는 것으로 바이너리를 교체하는 효과를 볼 수 있다.

[kafka@kafka ~]$ tar -xvzf apache-zookeeper-3.6.1-bin.tar.gz
apache-zookeeper-3.6.1-bin/docs/
apache-zookeeper-3.6.1-bin/docs/skin/
    :
중략
   :
apache-zookeeper-3.6.1-bin/lib/metrics-core-3.2.5.jar
apache-zookeeper-3.6.1-bin/lib/snappy-java-1.1.7.jar
[kafka@kafka ~]$ ln -s apache-zookeeper-3.6.1-bin zookeeper
[kafka@kafka ~]$ ll
합계 12148
drwxrwxr-x 6 kafka kafka      133  9월  1 08:35 apache-zookeeper-3.6.1-bin
-rw-r--r-- 1 kafka kafka 12436328  9월  1 08:34 apache-zookeeper-3.6.1-bin.tar.gz
lrwxrwxrwx 1 kafka kafka       26  9월  1 09:12 zookeeper -> apache-zookeeper-3.6.1-bin
 

2. 환경변수 설정
※ /home/kafka 디렉토리에 압축을 해제했고 kafka 계정을 사용하는 것으로 가정한다.
– ~/.bash_profile 에 환경 변수를 등록한다. 4~‘ 는 사용자의 home 디렉토리를 의미한다. 홈 디렉토리는 /etc/passwd 에 기록 되어있다.

[kafka@kafka zookeeper]$ vi ~/.bash_profile

export JAVJA_HOME=/home/kafka/jdk1.8.0_251
export PATH=$PATH:$JAVA_HOME/bin
 # JAVA_HOME 디렉토리 관련 설정. 

#여기부터 추가한다.
export ZOOKEEPER_HOME=/home/kafka/zookeeper
export ZOOBINDIR=$ZOOKEEPER_HOME/bin
 # zookeeper home 과 bin 설정
 # $ZOOKEEPER_HOME/bin/zkEnv.sh 에 $ZOOBINDIR이 명시되어있긴 하지만
 #편의를 위해 등록한다. zkEnv.sh 를 수정해도 된다.

export PATH=$PATH:$ZOOBINDIR
 #zookeeper bin 디렉토리를 PATH에 등록

 #변수를 별도록 export 하지 않으면 해당 변수는 '현재의 스크립트에서만 유효하다'

[kafka@zookeeper-kafka zookeeper]$ source ~/.bash_profile


3. zookeeper 설정
– 설정 파일 수정, node id 파일 생성, 클러스터간 설정 파일 동기화 세가지 작업이 필요하다.

가. $ZOOKEEPER_HOME/conf/zoo.cfg 파일을 생성하고 파일을 수정한다.

[kafka@kafka ~]$ vi $ZOOKEEPER_HOME/conf/zoo.cfg

tickTime=2000
 # 단위는 밀리초. 신호를 보내고 응답이 오기까지 설정된 시간만큼 대기한다.

initLimit=10
 # election 과정 이후 리더로 선출 된 zookeeper와 follower zookeeper들 간의 
 # 동기화 등에 사용되는   tick 시도 횟수. 즉 TickTime=2000에 initLimit=10일경우 
 # 총 20초동안 대기한다.
 # 관리하는 데이터의 양이 많을 경우 값을 늘려준다.

syncLimit=5
 # follower와 zookeeper 간의 동기화를 위한 틱 시도 횟수. 

dataDir=/home/kafka/zookeeper/datadir
 # zookeeper 데이터 디렉토리. tmp는 권장하지않는다.

clientPort=2181
 # zookeeper로 관리되는 클라이언트가 zookeeper에 연결 할 때 사용하는 포트

maxClientCnxns=7
# 최대 접속 가능한 클라이언트 갯수.
# 관리 대상 클라이언트가 많으면 값을 늘려준다.

autopurge.snapRetainCount=3
 # dataDir 디렉토리에 유지할 snapshot 갯수

autopurge.purgeInterval=1
 # 정리(삭제) 시도 주기, 간격. 
 # 단위는 시간.

server.1=192.168.100.111:2888:3888;2181
server.2=zookeeper2:2888:3888;2181
server.3=zookeeper3.fqdn.name:2888:3888;2181
 # 노드 정보. IP, host명(hosts 파일에 있는), FQDN 을 사용할 수 있다.
 # 2888은 leader노드가 follower 노드를 위해 열어두는 포트(동기화용).
 # 3888은 리더 선출을 위한 election 용 포트.
 # server. 뒤에 오는 숫자는 노드의 식별자가 된다. 

admin.enableServer=true
admin.serverPort=8000
admin.commandURL=/commands
 # 관리 서버 설정.
 # 사용하도록 설정하고 웹브라우저로 접속하면 커맨드 정보를 볼 수 있다.
[kafka@kafka ~]$  mkdir /home/kafka/zookeeper/datadir
[kafka@kafka ~]$  echo 1> /home/kafka/zookeeper/datadir/myid
 # myid에 적는 숫자는 zoo.cfg 에 기록한 서버 번호와 일치 해야 한다.

댓글 남기기