본문 바로가기
Old Posts/Kafka

[Kafka] 카프카 자주 사용하는 명령어

by A6K 2021. 10. 6.

카프카 클러스터를 운영하다보면 몇 가지 자주 사용하는 명령어들이 있다. 대부분 kafka-topic.sh 같은 스크립트를 이용한 쉘 명령어다.

토픽 생성

카프카 토픽은 kafka-topics.sh 스크립트를 이용해서 생성할 수 있다.

$ kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 2 --partitions 10 --topic MyTopic

사용된 옵션은 다음과 같다.

--create : 토픽 생성을 하겠다
--bootstrap-server : 토픽 생성을 위해 붙을 브로커 주소
--replication-facotr : 리플리케이션 팩터, 데이터를 몇 카피나 저장할지
--partitions : 토픽의 파티션 개수
-- topic : 생성할 토픽의 이름

토픽 조회

$ kafka-topics.sh --list --bootstrap-server localhost:9092

생성된 토픽들을 조회하는 방법은 간단하다. --list 옵션을 사용하면 된다.

토픽 상세 정보

$ kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic MyTopic

특정 토픽의 상세 정보를 보려면 --describe 옵션을 사용하고, --topic 옵션으로 상세정보를 확인하고 싶은 토픽의 이름을 써주면 된다.

토픽 리텐션 변경

카프카 브로커 서버의 디스크 공간이 충분하지 않은 경우 토픽에 보관되는 데이터의 보관주기를 줄일 필요가 있다. 예를 들어 데이터의 리텐션을 1시간으로 변경하기 위해서는 다음 명령을 실행하면 된다.

$ kafka-topics.sh --zookeeper localhost:2181 --alter --topic MyTopic --config retention.ms=3600000

--alter 옵션과 함께 --config 옵션의 인자로 바꾸고 싶은 설정이름과 값을 입력해주면 된다.

토픽 파티션 추가

특정 토픽에 파티션을 추가하고 싶은 경우도 있다. 주의할 점은 파티션의 경우 추가만 가능하고 삭제는 안된다.

$ kafka-topics.sh --zookeeper localhost:2181 --alter --topic MyTopic --partitions 100

만약 파티션 할당에 Key를 사용하고 있다면 파티션 수를 변경할 때 주의해야한다.

컨슈머 그룹 조회

카프카에 저장된 데이터는 컨슈머 그룹들에 의해 소비된다. 컨슈머 그룹들을 조회하는 명령어는 다음과 같다.

$ kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

컨슈머 상태와 오프셋 확인

$ kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group ${GroupName} --describe

토픽삭제

$ kafka-topics.sh --zookeeper localhost:2181 --delete --topic MyTopic

토픽을 삭제하기 위해서는 브로커의 설정 중 delete.topic.enable이 true로 설정되어 있어야 한다

댓글