본문 바로가기

리눅스

Ubuntu에 OpenJDK, Zookeeper 및 Kafka를 설치하는 방법

728x90

Ubuntu에 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
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
  • Zookeeper 압축 해제
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
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
  • Kafka 압축 해제
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 브로커 시작
bin/kafka-server-start.sh -daemon config/server.properties

Kafka 토픽 생성 및 테스트

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

 

  • Kafka가 설치되어 있는 디렉토리로 이동
cd /usr/local/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-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