1. 들어가며
카프카(Kafka)는 대규모 실시간 데이터 파이프라인 및 스트리밍 애플리케이션을 구축하는 데 사용되는 오픈 소스 분산 이벤트 스트리밍 플랫폼입니다. 카프카를 사용하기 위해서는 토픽, 파티션, 프로듀서, 컨슈머 등 시스템의 여러 구성 요소를 관리하기 위한 다양한 명령어를 사용해야 합니다. 이번 블로그 포스트에서는 카프카 클러스터에서 다양한 작업을 수행하기 위해 사용할 수 있는 카프카 명령어 모음을 제공하겠습니다.
2. 카프카 브로커(Broker) 명령어
카프카 브로커는 데이터의 저장 및 복제를 관리하는 카프카 클러스터의 핵심 구성 요소입니다. 다음 명령어를 사용하여 카프카 브로커를 관리할 수 있습니다.
2-1. 카프카 브로커 시작하기:
카프카 브로커를 시작하려면 다음 명령어를 사용합니다.
bin/kafka-server-start.sh config/server.properties
이 명령어는 server.properties라는 기본 구성 파일을 사용하여 카프카 브로커를 시작합니다. 다른 구성 파일을 사용하려면 인수로 지정해야 합니다.
2-2. 카프카 브로커 중지하기:
카프카 브로커를 중지하려면 다음 명령어를 사용합니다.
bin/kafka-server-stop.sh
이 명령어는 카프카 브로커를 정지하고 처리 대기 중인 모든 요청이 처리될 때까지 대기합니다.
2-3. 카프카 브로커 재시작하기:
카프카 브로커를 재시작하려면 수동으로 중지 및 시작할 수 있거나 다음 명령어를 사용할 수 있습니다.
bin/kafka-server-stop.sh && bin/kafka-server-start.sh config/server.properties
이 명령어는 카프카 브로커를 중지하고 기본 구성 파일을 사용하여 다시 시작합니다.
3. 카프카 토픽(Topic) 명령어
카프카 토픽은 카프카 클러스터에서 데이터가 전송되는 채널입니다. 다음 명령어를 사용하여 카프카 토픽을 관리할 수 있습니다.
3-1. 카프카 토픽 생성하기:
새로운 카프카 토픽을 생성하려면 다음 명령어를 사용합니다.
bin/kafka-topics.sh --create --topic <topic-name> --bootstrap-server <broker-list> [--replication-factor <replication-factor>] [--partitions <num-partitions>]
이 명령어는 지정한 이름, 복제 인수 및 파티션 수로 새로운 카프카 토픽을 생성합니다. 복제 인수와 파티션 수를 지정하지 않으면 카프카는 기본값을 사용합니다.
3-2. 카프카 토픽 목록 보기:
카프카 클러스터의 모든 토픽을 나열하려면 다음 명령어를 사용합니다.
bin/kafka-topics.sh --list --bootstrap-server <broker-list>
이 명령어는 클러스터의 모든 카프카 토픽 목록을 표시합니다.
3-3. 카프카 토픽 설명하기:
카프카 토픽을 설명하려면 다음 명령어를 사용합니다.
bin/kafka-topics.sh --describe --topic <topic-name> --bootstrap-server <broker-list>
이 명령어는 카프카 토픽의 이름, 파티션 수, 복제 인수, 리더 및 팔로워 브로커 등 자세한 정보를 표시합니다.
3-4. 카프카 토픽 수정하기:
카프카 토픽의 구성을 수정하려면 다음 명령어를 사용합니다.
bin/kafka-topics.sh --alter --topic <topic-name> --bootstrap-server <broker-list> [--partitions <num-partitions>] [--replication-factor <replication-factor>]
이 명령어는 지정한 카프카 토픽의 파티션 수와 복제 인수를 수정합니다.
3-5. 카프카 토픽 삭제하기:
카프카 토픽을 삭제하려면 다음 명령어를 사용합니다.
bin/kafka-topics.sh —delete —topic <topic-name> —bootstrap-server <broker-list>
이 명령어는 지정한 카프카 토픽과 해당 데이터 및 메타데이터를 모두 삭제합니다. 주의해서 사용하세요.
4. 카프카 프로듀서(Producer) 명령어
카프카 프로듀서는 카프카 토픽에 데이터를 쓰는 역할을 합니다. 다음 명령어를 사용하여 카프카 프로듀서를 관리할 수 있습니다.
4-1. 카프카 프로듀서 시작하기:
카프카 프로듀서를 시작하려면 다음 명령어를 사용합니다.
bin/kafka-console-producer.sh --broker-list <broker-list> --topic <topic-name>
이 명령어는 지정한 브로커 목록과 토픽 이름으로 새로운 카프카 프로듀서를 시작합니다.
4-2. 카프카 프로듀서로 데이터 쓰기:
카프카 프로듀서로 데이터를 쓰려면 데이터를 입력하고 Enter 키를 누르면 됩니다. 입력한 데이터는 지정한 카프카 토픽에 쓰입니다.
4-3. 카프카 프로듀서 구성하기:
카프카 프로듀서를 구성하려면 다음 명령어를 사용합니다.
bin/kafka-console-producer.sh —broker-list <broker-list> —topic <topic-name> [—producer-property <property-name>=<property-value>]
이 명령어는 지정한 프로퍼티로 카프카 프로듀서를 구성합니다.
5. 카프카 컨슈머(Consumer) 명령어
카프카 컨슈머는 카프카 토픽에서 데이터를 읽는 역할을 합니다. 다음 명령어를 사용하여 카프카 컨슈머를 관리할 수 있습니다.
5-1. 카프카 컨슈머 시작하기:
카프카 컨슈머를 시작하려면 다음 명령어를 사용합니다.
bin/kafka-console-consumer.sh —bootstrap-server <broker-list> —topic <topic-name> [—from-beginning]
이 명령어는 지정한 브로커 목록과 토픽 이름으로 새로운 카프카 컨슈머를 시작합니다.
5-2. 카프카 컨슈머로 데이터 읽기:
카프카 컨슈머로 데이터를 읽으려면 데이터가 도착할 때까지 기다리면 됩니다. 데이터는 콘솔에 표시됩니다.
5-3. 카프카 컨슈머 구성하기:
카프카 컨슈머를 구성하려면 다음 명령어를 사용합니다.
bin/kafka-console-consumer.sh --bootstrap-server <broker-list> --topic <topic-name> [--consumer-property <property-name>=<property-value>]
이 명령어는 지정한 프로퍼티로 카프카 컨슈머를 구성합니다.
6. 카프카 주키퍼(Zookeeper) 명령어
카프카 클러스터는 주키퍼를 사용하여 메타데이터와 구성 정보를 관리합니다. 다음 명령어를 사용하여 카프카 주키퍼를 관리할 수 있습니다.
6-1. 카프카 주키퍼 시작하기:
카프카 주키퍼를 시작하려면 다음 명령어를 사용합니다.
bin/zookeeper-server-start.sh config/zookeeper.properties
이 명령어는 기본 구성 파일인 zookeeper.properties를 사용하여 카프카 주키퍼를 시작합니다.
6-2. 카프카 주키퍼 중지하기:
카프카 주키퍼를 중지하려면 다음 명령어를 사용합니다.
bin/zookeeper-server-stop.sh
이 명령어는 카프카 주키퍼를 중지합니다.
5.3 주키퍼 클러스터 모니터링:
주키퍼 클러스터를 모니터링하려면 다음 명령어를 사용합니다.
bin/zookeeper-shell.sh <zookeeper-connect-string>
이 명령어는 주키퍼 셸을 열고 주키퍼 클러스터의 상태를 검사할 수 있습니다.
6. 마치며
이상으로 카프카 명령어 모음에 대한 블로그 포스트를 마치겠습니다. 이 명령어들을 이용하여 카프카 클러스터를 관리하고 데이터를 처리하는 데 도움이 되기를 바랍니다. 감사합니다.