개발공부/Kafka

[Kafka, 카프카] Kafka Shell Sciprt 명령어

차나니 2025. 1. 6. 21:28

Kafka topic을 조작하는 Shell Script인 Kafka-topics.sh, Kafka-configs.sh 등의 명령어를 정리해보겠습니다 !

당장 학습하며 자주 사용하는 명령어 위주로 작성할 예정이지만 Kafka를 계속 공부하면서 지속적으로 업데이트할 예정입니다 !

 

Kafka-topics.sh 명령어

topic 생성하기(기본 옵션)

bin/kafka-topics.sh --create --bootstrap-server my-kafka:9092 --topic hello.kafka
  • hello.kafka는 생성하고 싶은 topic 이름
  • my-kafka는 Kafka브로커의 호스트이름 또는 도메인 이름

topic 생성하기(옵션 추가)

bin/kafka-topics.sh --create --bootstrap-server my-kafka:9092 --partitions 10 --replication-factor 1 --topic hello.kafka2 --config retention.ms=172800000
  • --partitions : 파티션 수
  • --replication-factor : 각 파티션의 복재본(replica) 수
  • --config retention.ms : 토픽의 특정 설정 값
  • --topic : 토픽명

토픽 세부 정보 조회

bin/kafka-topics.sh --bootstrap-server my-kafka:9092 --topic hello.kafka --describe

 

파티션 수 증가시키기

bin/kafka-topics.sh --bootstrap-server my-kafka:9092 --topic test --alter --partitions 10
  • --partition : 증가 시킬 파티션의 수
‼️주의
파티션의 수를 증가시킬 수 는 있지만 파티션의 수는 감소 시킬 수는 없습니다.
아래 사진과 같이 InvalidPartitionsException이 발생하니 파티션을 증가시킬 경우에는 신중하게 증가시키세요 !

 

kafka-configs.sh 명령어

토픽 일부 옵션 설정

bin/kafka-configs.sh --bootstrap-server my-kafka:9092 --alter --add-config min.insync.replicas=2 --topic test
  • --alter : 기존 설정을 수정
  • --add-config min.insync.replicas=2 :기화된 복제본의 최소 개수를 2로 설정
  • --add-config retention.ms=604800000 : 메시지가 토픽에서 유지되는 시간(밀리초 단위)
  • --add-config retention.bytes=1073741824 : 토픽에서 메시지가 차지할 수 있는 최대 크기(바이트 단위)

Kafka Broker 설정 값 조회

bin/kafka-configs.sh --bootstrap-server my-kafka:9092 --broker 0 -all --describe

 

kafka-console-producer.sh 명령어

토픽 데이터 넣기(키 X, 키를 지정하지 않으면 null로 설정)

bin/kafka-console-producer.sh --bootstrap-server my-kafka:9092 --topic hello.kafka

토픽에 데이터 넣기(키 O)

bin/kafka-console-producer.sh --bootstrap-server my-kafka:9092 --topic hello.kafka --property "parse.key=true" --property "key.separator=:"

 

kafka-console-consumer.sh 명령어

토픽으로 전송된 데이터 조회

bin/kafka-console-consumer.sh --bootstrap-server my-kafka:9092 --topic hello.kafka
  •  --from-beginning : 처음 데이터부터 출력

토픽으로 전송된 데이터 조회(key & value 모두 출력)

bin/kafka-console-consumer.sh --bootstrap-server my-kafka:9092 --topic hello.kafka --property print.key=true --property  key.separator="-" --from-beginning
  • —max-messages 조회할 수 : 옵션으로 최대 컨슘 메시지 개수를 설정
  • —partition 파티션번호 : 옵션으로 특정 파티션만 컨슘
  • —group 그룹명 : 옵션으로 컨슈머 그룹을 기반으로 동작

kafka-consumer-groups.sh 명령어

컨슈머 그룹 목록 조회

bin/kafka-consumer-groups.sh --bootstrap-server my-kafka:9092 --list

컨슈머 그룹 상세 조회

bin/kafka-consumer-groups.sh --bootstrap-server my-kafka:9092 --group hello-group --describe

오프셋 리셋

bin/kafka-consumer-groups.sh --bootstrap-server my-kafka:9092 --group hello-group --topic hello.kafka --reset-offsets --to-earliest --execute
  • --to-earliest : 가장 처음 오프셋(작은 번호)으로 리셋
  • --to-latest : 가장 마지막 오프셋(큰 번호)으로 리셋
  • --to-current : 현 시점 기준 오프셋으로 리셋