본문 바로가기

리눅스

우분투에 Zookeeper와 Kafka를 설치 및 테스트하는 방법

반응형

우분투 22.04에서 OpenJDK, ZooKeeper, Kafka 설치 및 테스트

테스트 환경

운영체제 정보

$ lsb_release -d
Description:	Ubuntu 22.04.2 LTS

1. OpenJDK 설치

Kafka와 Zookeeper는 Java 기반으로 동작하므로 OpenJDK가 필요합니다.

 

패키지 저장소 업데이트

apt-get update

OpenJDK 설치

apt-get install -y openjdk-17-jre

OpenJDK 버전 확인

java --version
openjdk 17.0.8.1 2023-08-24
OpenJDK Runtime Environment (build 17.0.8.1+1-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 17.0.8.1+1-Ubuntu-0ubuntu122.04, mixed mode, sharing)

2. Zookeeper 설치

Kafka는 메타데이터 관리를 위해 ZooKeeper를 사용합니다.

이때 공식 Zookeeper 웹 사이트에서 다운로드한 Zookeeper 바이너리를 사용합니다.

 

작업 디렉토리로 이동

cd /usr/local/src

Zookeeper 다운로드

sudo wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.2/apache-zookeeper-3.8.2-bin.tar.gz

압축 해제

sudo tar -xzf apache-zookeeper-3.8.2-bin.tar.gz

설치 디렉토리로 이동

sudo mv apache-zookeeper-3.8.2-bin /usr/local/zookeeper

Zookeeper 디렉토리 이동

cd /usr/local/zookeeper

환경 설정 파일 생성

cp conf/zoo_sample.cfg conf/zoo.cfg

Zookeeper 환경 설정 파일 편집

vim conf/zoo.cfg

Zookeeper 버전 확인

bin/zkServer.sh version
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Apache ZooKeeper, version 3.8.2 2023-07-05 19:24 UTC

Zookeeper 실행

bin/zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

Zookeeper 상태 확인

bin/zkServer.sh status
728x90

3. Kafka 설치

Kafka를 설치합니다. 이때 공식 Kafka 웹 사이트에서 다운로드한 Kafka 바이너리를 사용하겠습니다.

 

작업 디렉토리로 이동

cd /usr/local/src

Kafka 다운로드

  • Scala 버전 및 Kafka 최신 버전은 공식 사이트 기준으로 변경 가능
wget https://downloads.apache.org/kafka/3.5.1/kafka_2.13-3.5.1.tgz

압축 해제

tar -xzf kafka_2.13-3.5.1.tgz

설치 디렉토리로 이동

mv kafka_2.13-3.5.1 /usr/local/kafka

Kafka 디렉토리 이동

cd /usr/local/kafka

Kafka 버전 확인

bin/kafka-run-class.sh kafka.Kafka --version
3.5.1

Kafka 브로커 구성 파일 편집

  • 여기서 필요에 따라 구성을 수정할 수 있습니다. 기본 설정은 대부분의 경우에 유효하지만 포트 또는 기타 설정을 변경하려면 수정하세요.
vim config/server.properties

Kafka 서버 실행

  • Zookeeper가 실행 중인 상태에서 Kafka 서버를 시작합니다.
bin/kafka-server-start.sh -daemon config/server.properties

Kafka 토픽 생성 및 메시지 테스트

Kafka가 설치되었으므로 간단한 Kafka 토픽을 생성하고 메시지를 퍼블리시하고 컨슈밍해보겠습니다.

 

Kafka가 설치되어 있는 디렉토리로 이동

cd /usr/local/kafka

Kafka 토픽 생성

bin/kafka-topics.sh \
  --create \
  --topic my-topic \
  --bootstrap-server localhost:9092 \
  --partitions 1 \
  --replication-factor 1
Created topic my-topic.

토픽 목록 확인

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

Kafka 메시지 프로듀싱 및 컨슈밍

프로듀서(Producer) 실행

  • 메시지를 전송할 수신자 역할을 시작합니다.
bin/kafka-console-producer.sh \
  --topic my-topic \
  --bootstrap-server localhost:9092
> message sending
>

메시지를 작성한 후 Ctrl + C로 종료합니다.

 

컨슈머(Consumer) 실행

  • 다른 터미널에서 메시지를 수신할 소비자 역할을 시작합니다.
bin/kafka-console-consumer.sh \
  --topic my-topic \
  --bootstrap-server localhost:9092 \
  --from-beginning
message sending
Processed a total of 1 messages

퍼블리시한 메시지를 확인할 수 있어야 합니다. 메시지 확인 후 Ctrl + C로 종료합니다.

메세지 발송(message sending)

Kafka에서 메시지를 발송하는 것은 프로듀싱(Producing)이라고 하며 메시지를 받아오는 것은 컨슈밍(Consuming)이라고 합니다.

 

프로듀싱(Producing) 또는 퍼블리싱(Publishing)

  • Kafka에서 메시지를 발송하는 작업
$ bin/kafka-console-producer.sh --topic my-topic --bootstrap-server localhost:9092
> message sending
>

컨슈밍(Consuming) 또는 컨슈머(consumer)

  • Kafka에서 메시지를 받아오는 작업
$ bin/kafka-console-consumer.sh --topic my-topic --bootstrap-server localhost:9092 --from-beginning
message sending
Processed a total of 1 messages

 

참고URL

- Apache ZooKeeper Download : https://zookeeper.apache.org/releases.html

- Kafka Download : https://kafka.apache.org/downloads

 

728x90
반응형