본문 바로가기
서버인프라/카프카

[ 제 1강 설치 ] zookeeper 와 KAFKA 설치하기

by techwold ted 2021. 1. 26.

이번에는 zookeeper 설치를 진행해 보려 합니다. 오래전 설치 한 기억들을 끌어올리려 하니 ㅠㅠ 정말 힘드네요

일단 zookeeper 설치에 앞서 사전 진행 사항이 필요합니다.

zookeeper와 kafka 테스트의 편의성을 위해 confluent platform을 사용해 보려합니다.

 

사전진행 (3대의 서버에서 실행 합니다.)

1. 필수 패키지 설치 진행

yum install curl which

 

2. yum 패키지 설치

rpm --import https://packages.confluent.io/rpm/6.0/archive.key

 

3. yum repo 생성 /etc/yum.repos.d/confluent.repo

[Confluent.dist]
name=Confluent repository (dist)
baseurl=https://packages.confluent.io/rpm/6.0/7
gpgcheck=1
gpgkey=https://packages.confluent.io/rpm/6.0/archive.key
enabled=1

[Confluent]
name=Confluent repository
baseurl=https://packages.confluent.io/rpm/6.0
gpgcheck=1
gpgkey=https://packages.confluent.io/rpm/6.0/archive.key
enabled=1

 

4. yum 캐시 삭제 및 confluent community platform 설치

yum clean all &&  yum install confluent-community-2.13

 

위와 같이 하시면 준비 끝!!

 

이제 Zookeeper 설치를 해볼께요

 

Zookeeper 컨피그 설정

 

1. /etc/kafka/zookeeper.properties에서 아래와 같은 수정이 필요합니다.

tickTime=2000
dataDir=/var/lib/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
autopurge.snapRetainCount=3
autopurge.purgeInterval=24

 

그리고 /var/lib/zookeeper 에서 myid 를 생성합니다.

 

1번 서버에서

echo 1 > /var/lib/zookeeper/myid

2번 서버에서

echo 2 > /var/lib/zookeeper/myid

 

3번 서버에서

echo 3 > /var/lib/zookeeper/myid

 

3대의 서버에 위와 같이 구성이 완료 되었다면 문제 없이 zookeeper를 실행 할 수 있습니다.

systemctl start confluent-zookeeper

 

위와 같이 잘 실행이 되었다면, 2181port listen 상태를 확인 할 수 있습니다.

 

KAFKA 컨피그 설정

사전작업

mkdir /data1
mkdir /data2

 

1. kafka 컨피그 설정 (/etc/kafka/server.properties) 수정

# 브로커 ID는 zookeeper에서 myid 생성했던 값을 입력합니다.
broker.id=1

listeners=PLAINTEXT://:9092

advertised.listeners=PLAINTEXT://kafka1:9092
log.dirs=/data1,/data2


num.partitions=1

offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=2

zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181/kafka

group.initial.rebalance.delay.ms=0
delete.topic.enable = true
log.roll.hours=1

 

위와 같이 설정을 하고

kafka2번서버와 kafka3번서버 에도 broker.id와 advertised.listeners 의 host를 kafka2, kafka3 으로 변경하여 줍니다.

그리고, 실행

 

2. kafka 실행

systemctl start confluent-kafka

Port 9092가 open되어 있는지 확인합니다.

 

댓글