Data Engineering/Kafka

[Linux/Kafka] Apache Kafka를 설치하고 Producer/Consumer/Topic을 생성해보자

seoraroong 2024. 8. 22. 16:30

Apache Kafka 설치하기 (2.5.0 version - Scala 2.12)

 

- 파일을 다운로드 한 후 압축을 풀어준다.

tar xvfz 파일_이름
mv 압축_푼_파일_이름 변경할_파일_이름

 

- Kafka의 JVM Heap Size를 설정해준다.

 

- Kafka의 server.properties 파일을 수정해준다. (31번째 줄 주석 해제해주기)

gedit /kafka/config/server.properties

 

- zookeeper, kafka broker service를 실행한다.

[ Zookeeper service 실행 ]

 

[ Kafka Broker service 실행 ]

 

 

Kafka Topic 생성하기

bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 3 --topic test

 

- bin/kafka-topics.sh : Kafka의 토픽을 관리하는 명령줄 도구. 이 스크립트는 Kafka 클러스터와 상호작용해 토픽을 생성,                                       삭제, 나열, 수정할 수 있다.

- --create : 새로운 Kafka 토픽을 생성하겠다는 명령어

- --bootstrap-server localhost:9092 : Kafka 클러스터의 브로커와 연결하기 위한 서버 주소를 지정하는 부분. 

                                                          localhost에서 실행 중인 Kafka 브로커의 포트 9092를 지정했다.

- --replication-factor 1 : 생성할 토픽의 복제 인자 (replication factor)를 설정한다.

                                      1로 설정할 경우 각 파티션의 데이터는 클러스터 내에서 한 개의 브로커에만 복제된다.

                                       일반적으로는 2 이상으로 설정하는 것을 권장한다.

- --partitions 3 : 생성할 토픽의 파티션 수를 설정하는 부분. 토픽은 3개의 파티션으로 나뉘어 생성된다.

- --topic '토픽_이름' : 생성할 토픽의 이름을 지정한다. 나는 test라는 이름의 토픽을 만들었다.

 

 

생성한 Kafka Topic 정보 확인하기

bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 test

 

 

생성한 Kafka Topic의 로그 확인하기

 

- 각 segment 상세 내용 확인하기

 

 

Kafka Producer/Consumer 생성하기

-> 이 때 데이터가 잘 전달되는지 실시간으로 확인하기 위해 두 개의 터미널을 열어서 작업해주면 좋다.

Producer Shell에 입력한 내용이 실시간으로 Consumer에 전송되는 것을 확인할 수 있었다.

 

bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

 

 

Consumer Group 생성하기

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test -group testgroup --from-beginning

 

- Consumer Group의 리스트 확인하기 

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

 

- 생성한 Consumer Group의 내용 확인하기

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group testgroup --describe