without haste but without rest

로컬 환경에서 카프카 클러스터 구축 본문

Data Engineering & DataOps/Kafka

로컬 환경에서 카프카 클러스터 구축

JinungKim 2021. 6. 7. 13:22

OS: ubuntu 20.04 LTS

kafka: 2.5.0

broker: 3대 

 

    각 서버에 카프카 설치를 한다. 카프카 2.6버전 이후부터 주키퍼가 빠졌는데, 해당 테스트에서는 주키퍼를 사용하는 2.5버전을 사용했다. 주키퍼 설정, 카프카 설정은 기본옵션을 사용했으며 각 서버에 동일하고, 포트 설정 정도만 변경해준다.


1. kafka install 

wget http://archive.apache.org/dist/kafka/2.5.0/kafka_2.13-2.5.0.tgz
tar -zxvf kafka
rm kafka_2.13-2.5.0.tgz

 

2. 주키퍼 설정

# 카프카 설치한 디렉토리 패스로 이동

vi config/zookeeper.properties

    아래 설정이 주키퍼 기본 세팅

#zookeeper.properties

dataDir=/tmp/zookeeper
clientPort=2181
maxClientCnxns=0

initLimit=5
syncLimit=2

server.1=broker-server1:2888:3888
server.2=broker-server2:2888:3888
server.3=broker-server3:2888:3888

    위에서 설정한 주키퍼 데이터 디렉토리 생성

mkdir /tmp/zookeeper

    각 서버마다 주키퍼 id 부여

# broker가 3대이므로 1~3으로 id 부여
echo 1 > /tmp/zookeeper/myid
echo 1 > /tmp/zookeeper/myid
echo 1 > /tmp/zookeeper/myid

 

3. 카프카 설정

    카프카 설정 

vi config/server.properties

    브로커 1~3까지 아이디 및 advertised.listeners 적절히 수정, 그 외에 나머지는 모두 동일함.

아래 옵션을 위에 추가해주고 주키퍼 및 카프카 옵션 주석처리하는 게 빠름

#server.properties

broker.id=1
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://broker-server1:9092
zookeeper.connect=broker-server1:2181,broker-server2:2181,broker-server3:2181 

    별도의 옵션은 카프카 및 주키퍼 설정을 검색해보면 쉽게 나온다. 클러스터 구축 포스팅이므로 생략함

 

 

4. 주키퍼 실행

    반드시 주키퍼부터 실행해야 한다. 주키퍼가 카프카의 메타데이터를 관리하기 때문이다.

 

    각 서버에서 아래 start 명령어 실행. 데몬으로 실행하지 않는 경우 connection refused 에러를 확인할 수 있는데, 다른 서버에서 주키퍼를 실행하지 않아서 발생한다. (종료는 stop 명령어)

# start
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

# stop
bin/zookeeper-server.stop.sh

 

5. 카프카 실행

    각 서버에서 아래 start 명령어 실행 (종료는 stop 명령어)

# start
bin/kafka-server-start.sh -daemon config/server.properties

# stop
bin/kafka-server-stop.sh

 

6. 토픽 리스트 확인

# topic list
bin/kafka-topics.sh --list --bootstrap-server broker-server1:9092,broker-server2:9092,broker-server3:9092

 

 

7. 클러스터 브로커 리스트 확인

bin/kafka-broker-api-versions.sh --bootstrap-server broker1:9092 | grep 9092

 

8. 카프카 벤치마크 테스트

 

[kafka] 카프카 성능 테스트

카프카는 성능 테스트를 기본적으로 제공하고 있다. 아래 과정으로 현재 구축한 카프카 클러스터의 성능이 어느정도 나오는지 확인할 수 있다. 0. create topic 앞서 구축한 테스트용 카프카 클러스

jinyes-tistory.tistory.com

 

Comments