본문 바로가기
👩‍💻TIL/kafka

[kafka] 카프카 시작하기 튜토리얼

by devuna 2021. 1. 20.
728x90

[kafka] 카프카 시작하기 튜토리얼

아파치 카프키 튜토리얼의 내용(kafka.apache.org/quickstart)을 따라 정리한 내용입니다.

 

STEP 1: GET KAFKA

1) 링크 클릭하여 최신버전의 kafka를 다운로드 합니다.

(저는 wget을 사용하여 tgz파일을 다운받았습니다.  👉 wget 사용법이 궁금하다면 wget으로 파일 다운로드 하기 )

$ wget https://downloads.apache.org/kafka/2.7.0/kafka_2.13-2.7.0.tgz

2) 다운받은 링크를 압축해제 합니다.

$ tar -xzf kafka_2.13-2.7.0.tgz
$ cd kafka_2.13-2.7.0

 

STEP 2: START THE KAFKA ENVIRONMENT

(참고, 카프카 환경을 시작하기 위해서는 Java 8버전 이상의 설치가 필요합니다.) 

아래 명령어를 통해 컴퓨터에 설치된 자바버전을 한번 확인해주세요.

$ java -version

 

자바가 잘 설치되었다면, 아래 명령어를 실행하여 zookeeper를 세팅합니다.

# Start the ZooKeeper service
# Note: Soon, ZooKeeper will no longer be required by Apache Kafka.

# 1. 윈도우의 경우 /bin/windows 폴더 밑에 batch 파일을 실행
$ cd bin/windows
$ zookeeper-server-start.bat ../../config/zookeeper.properties

# 2. 리눅스의 경우 /bin 디렉토리 하위에 shell 파일을 실행
$ bin/zookeeper-server-start.sh config/zookeeper.properties


  • zookeeper-server-start.bat : zookeeper 서버를 실행하는 파일입니다.
  • zookeeper.properties
    • zookeeper 서버 설정 파일입니다.
    • 위의 로그를 보시면 zookeeper를 실행했을 때 포트가 2181로 바인딩 되는데 그 이유는, zookeeper.properties에서 clientPort=2181으로 기본 설정되어 있기 때문입니다.
    • 이 외에 추가적인 설정은 공식문서에 상세히 나와있습니다.

📌 디렉토리 구조는 아래와 같습니다.(경로설정에 참고해주시기 바랍니다.)

bin/
  |
  +-- zookeeper-server-start.sh
  |
  +-- windows/
        |
        +-- zookeeper-server-start.bat
config/
  |
  +-- zookeeper.properties

 

그 다음 새로운 터미널 세션을 열고 다시 아래 명령어를 실행합니다.

# Start the Kafka broker service

# 리눅스의 경우
$ bin/kafka-server-start.sh config/server.properties

# 윈도우의 경우
$ \bin\windows>kafka-server-start.bat ../../config/server.properties

명령어가 잘 실행되면 기본적인 kafka 환경이 실행되고 사용될 준비가 되었습니다.

 

STEP 3: CREATE A TOPIC TO STORE YOUR EVENTS

💡토픽 생성하기

$ kafka_2.13-2.7.0\bin\windows>kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 -partitions 1 --topic test
Created topic test.

$ bin\windows>kafka-topics.bat --list --bootstrap-server localhost:9092
test

옵션 설명

  • --create : 새로운 토픽을 만든다.
  • --bootstrap-server  : 연결할 카프카 서버 포트번호 설정( host:port )
  • --replication-factor: 레플리케이션 복제 수 
  • --partitions: 기본 생성될 파티션의 수 (기본 값은 server.properties 파일에서 num.partitions 항목으로 설정 가능)
  • --topic : 사용할 Topic 의 이름

💡 생성한 토픽의 상세 정보 조회

$ \bin\windows>kafka-topics.bat --describe --topic test --bootstrap-server localhost:9092

Topic: test     PartitionCount: 1       ReplicationFactor: 1    Configs: segment.bytes=1073741824
Topic: test     Partition: 0    Leader: 0       Replicas: 0     Isr: 0

옵션 설명

  • --describe : 해당 토픽의 정보 설명을 가져온다

💡 생성한 토픽 삭제

# bin\windows\kafka-topics.bat --delete --topic test --bootstrap-server localhost:9092
  • --delete : 생성한 토픽을 삭제하기 위해서는 server.properties 파일에서 delete.topic.enable=true 설정을 추가가 필요하며, 서버를 재시작해야한다.

 

STEP 4: WRITE SOME EVENTS INTO THE TOPIC

💡프로듀서로 데이터 만들기

$ \bin\windows>kafka-console-producer.bat --broker-list localhost:9092 --topic test

>first event
>second event

ctrl+c를 통해 작업에서 빠져나올 수 있습니다.

 

💡컨슈머로 데이터 가져오기

 

$ bin\windows>kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

 

728x90

댓글