IT 삽질기

Kafka scale out 본문

BigData/Kafka

Kafka scale out

화이팅빌런 2021. 6. 1. 23:24

kafka scale out

Kafka scale out을 진행해보자.

공식 문서에 나와있는 cluster 확장에 대한 부분이다.

http://kafka.apache.org/documentation/#basic_ops_cluster_expansion

 

서버를 추가하는 방법은 매우 간단하다.

server.properties에서 설정을 변경하면 되는데 다른 설정 값은 기존 kafka 설정과 동일하게 진행하고 일반적으로 변경이 필요한 부분은 아래 2가지 설정이다.

- broker.id

- listeners

broker.id는 kafka 클러스터 내부에서 유일한 값을 가져야 하기 때문에 기존에 사용하던 broker.id와 다른 값을 지정하고,

listeners는 kafka broker가 토오신을 위해 열어둘 인터페이스를 지정하는 부분으로 일반적으로 localhost의 hostname으로 지정하기에 두가지 옵션을 변경했다.

 

위의 두가지 설정을 변경한 후 kafka broker을 실행시키면 kafka 클러스터에 추가가 된다.

제대로 붙었는지 확인하기 위해 zookeeper-shell.sh 파일을 사용할 수 있는데,

아래의 명령어로 확인할 수 있다.

${kafka_home}/bin/zookeeper-shell.sh zookeeper_host ls /brokers/ids

위의 명령어를 실행하면 brokers들이 출력되며, 새로 추가한 broker.id가 나온다면 정상적으로 추가가 된 것으로 판단할 수 있다.

 

kafka-manager을 사용하는 경우에는 Web에서 확인할 수 있으며, 기존 broker.id 1,2,3을 이용하다가 4,5를 추가한 경우 아래와 같이 확인이 가능하다.

https://github.com/yahoo/CMAK

 

추가 전 Brokers 목록

추가 후 Brokers 목록

zookeeper-shell을 이용한다면 추가 전 명령어의 결과는 [1,2,3] 추가 후 명령어의 결과는 [1,2,3,4,5]가 출력될 것이다.

 

kafka scale out은 이렇게 간단하게 가능하다.

그러나 이렇게 추가된 broker들에는 기존의 topic의 데이터는 저장되지 않고, 새로 만들어지는 topic에 대한 데이터만 저장이 되며, 기존의 topic에서도 새로운 broker를 사용하기 위해서는 파티션 재할당 작업을 진행해야 한다.

파티션 재할당 작업은 다음 글에서 진행하도록 한다.

'BigData > Kafka' 카테고리의 다른 글

Kafka Acks  (0) 2021.06.08
Kafka-manager을 이용한 Partition reassign  (0) 2021.06.05
Kafka ISR(In-Sync-Replicas)  (0) 2021.05.29
Kafka 보관 주기 설정하기  (0) 2021.05.28
Docker을 이용한 Kafka 시작하기  (0) 2021.05.02
Comments