IT 삽질기

Kafka-manager을 이용한 Partition reassign 본문

BigData/Kafka

Kafka-manager을 이용한 Partition reassign

화이팅빌런 2021. 6. 5. 12:00

Kafka Scale out

지난 글에서 Kafka Scale out 작업을 진행했다.

2021.06.01 - [BigData/Kafka] - Kafka scale out

마지막 부분에 언급한 것처럼 scale out을 진행했다고 해서 기존에 사용하고 있던 partition들의 데이터가 새로운 broker로 전달되지 않고, 새로운 topic의 데이터들만 전달되기 때문에 기존 topic의 데이터를 옮기기 위해서는 Patition reassign작업이 필요하다.

Partition reassign을 하는 방법은 broker에서 제공하는 명령어를 이용하는 방식과 kafka-manager을 이용하는 방식이 있는데 여기서는 kafka-manager을 이용한 방법을 먼저 설명한다.

Partition reassign

partition reassign 작업은 kafka 내부에 많은 작업을 유발하며, 데이터가 많을수록 부하가 심해지기 때문에 정상 운영중인 경우 그렇게 권장하는 방법은 아니며, 실제 진행한 결과 일부 consumer에서 문제가 발생해 데이터를 처리하지 못하는 상황이 발생하여, 실시간 데이터를 다루고 중요도가 높은 경우 진행하지 않는 편이 좋을것이라 판단됩니다.

 

kafka-manager partition reassign

먼저 kafka-manager에 접근하여 Topic list항목으로 들어간다.

List에 나타나는 Topic중 하나를 누르면 아래와 같은 화면을 볼 수 있다.

reassign 관련하여 2가지 옵션을 사용할 수 있는데,

Generate Partitions Assignments, Manual Partition Assignments

두 가지 옵션에 대해 간단하게 살펴보자.

Generate Partitions Assignments

Generate Partitions Assignments에서는 아래와 같은 기능을 제공하는데 reassign을 위한 broker 지정과 replication에 관한 옵션을 변경하는 것이 가능하다. 특정 broker를 제외하고 reassign이 가능하며, 어떤 partition이 어느 broker에 존재하는지나 reader partition설정에 대한 기능은 제공하지 않는다.

Manual Partition Assignments

그렇다면 Manual Partition Assignments은 어떤 기능을 제공할까

topic별 partition이 어떤 broker에 할당할지와 가장 위에 있는 broker은 reader patition으로 지정되어 동작하게 설정하는 것도 가능한다.

좀 더 세부적이고, 특정 서버에 부하가 집중되는 경우 적절히 사용할 수 있을 것이다.

 

이렇게 설정을 완료한 이후 topic 설정 화면으로 돌아와 reassign partition 작업을 진행하면, partition들이 분배되고, partitions by broker에서 설정이 잘 되었는지 확인이 가능하다.

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

Kafka consumer와 commit  (0) 2021.06.28
Kafka Acks  (0) 2021.06.08
Kafka scale out  (0) 2021.06.01
Kafka ISR(In-Sync-Replicas)  (0) 2021.05.29
Kafka 보관 주기 설정하기  (0) 2021.05.28
Comments