우분투에 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
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
'리눅스' 카테고리의 다른 글
CentOS 7에서 ImageMagick을 설치하고 테스트하는 방법 (0) | 2023.09.12 |
---|---|
VMware ESXi 환경에서 리눅스 가상 머신(VM)의 하드 디스크 용량을 증설하는 방법 - Ubuntu (0) | 2023.09.07 |
[draft] MySQL 서버의 타임존을 확인하고 변경하는 방법 (0) | 2023.09.06 |
MySQL에서 caching_sha2_password 인증 플러그인을 비활성화하고 mysql_native_password를 대신 사용하는 방법 (0) | 2023.09.05 |
웹 서버에서 CORS 설정하는 방법 (0) | 2023.09.05 |