본문 바로가기

리눅스

[draft] 우분투에 Zookeeper와 Kafka를 설치하는 방법

728x90

우분투에 OpenJDK, Zookeeper 및 Kafka를 설치하는 방법

테스트 환경

$ lsb_release -d
Description:	Ubuntu 22.04.2 LTS

1. OpenJDK 설치

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

 

저장소 업데이트

apt-get update

OpenJDK 설치

apt-get install -y openjdk-17-jre

OpenJDK 버전 정보 확인

java --version
$ 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 설치

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

Zookeeper 폴더 local(/usr/local/) 디렉토리 밑으로 이동

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

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

cd /usr/local/zookeeper

Zookeeper 환경 설정 파일 생성

cp conf/zoo_sample.cfg conf/zoo.cfg

Zookeeper 환경 설정 파일 편집

vim conf/zoo.cfg

Zookeeper 버전 정보 확인

bin/zkServer.sh version
$ 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
$ 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

Kafka 폴더 local(/usr/local/) 디렉토리 밑으로 이동

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

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

cd /usr/local/kafka

Kafka 버전 정보 확인

bin/kafka-run-class.sh kafka.Kafka --version
$ 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
$ 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 메시지 전송 및 수신 테스트

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

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

 

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

퍼블리시한 메시지를 확인할 수 있어야 합니다. 메시지 확인 후 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