개요
Apache Kafka는 오픈 소스 분산 이벤트 스트리밍 플랫폼으로, Apache Software Foundation에서 개발하였습니다. Java와 Scala 프로그래밍 언어로 작성되어 있으며, Java를 지원하는 모든 플랫폼에 설치할 수 있습니다.
Rocky에서 Apache Kafka를 설치하는 방법을 알아봅니다.
1. Java 설치
Kafka를 설치하려면 먼저 Java를 설치해야 합니다.
sudo dnf install java-17-openjdk java-17-openjdk-devel
2. Apache Kafka 다운로드 및 설치
https://kafka.apache.org/downloads 에서 Apache Kafka의 최신 버전을 다운로드하세요. Binary downloads에서 최신 Scala 버전을 선택합니다.
# wget으로 Kafka 다운로드합니다.
wget https://downloads.apache.org/kafka/3.8.0/kafka_2.13-3.8.0.tgz
# 압축 해제합니다.
sudo tar -xvzf kafka_2.13-3.8.0.tgz
# 압축 해제된 폴더를 /usr/local 디렉토리로 복사합니다.
sudo mv kafka_2.13-3.8.0 /usr/local/kafka
3. Kafka와 Zookeeper 설정 변경
Kafka와 Zookeeper 설정을 변경하세요.
2024.09.16 - [Kafka] - [Kafka]Kafka, Zookeeper properties 파일 구성하기
4. 서비스 실행하기
Kafka를 백그라운드에서 실행하기 위해 Kafka와 Zookeeper 에 대한 systemd 서비스를 생성합니다.
(1) Zookeeper
Apache Kafka는 클러스터 관리를 위해 Zookeeper를 필요로 합니다. 따라서 Kafka를 시작하기 전에 Zookeeper를 먼저 실행해야 합니다. Zookeeper는 Apache Kafka에 함께 포함되어 제공됩니다.
/etc/systemd/system 디렉토리에 “zookeeper.service” 파일을 생성하여 Zookeeper 서비스를 만드세요.
sudo vim /etc/systemd/system/zookeeper.service
# 다음을 작성하세요.
[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
ExecStart=/usr/bin/bash /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/bin/bash /usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
(2) Kafka
/etc/systemd/system 디렉토리에 “ kafka.service” 파일을 생성하여 Kafka 서비스를 만드세요.
sudo vim /etc/systemd/system/kafka.service
# 다음을 작성하세요.
[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/jre-17-openjdk"
ExecStart=/usr/bin/bash /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/bin/bash /usr/local/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
위 두 서비스 파일을 모두 생성한 후 systemd 데몬을 다시 로드해야 합니다. 그리고 각각의 서비스를 실행하세요.
sudo systemctl daemon-reload
# Zookeeper 서비스 실행
sudo systemctl start zookeeper
sudo systemctl status zookeeper
# Kafka 서비스 실행
sudo systemctl start kafka
sudo systemctl status kafka
두 서비스 상태가 모두 active(running) 이라면 서비스가 성공적으로 실행되고 있습니다.
[NOTE] Kafka를 root가 아닌 사용자로 실행하려면:
1. Kafka 전용 사용자 생성
sudo useradd --system --no-create-home --shell /sbin/nologin kafka
# --system: 시스템 전용 사용자
# --no-create-home: 홈 디렉토리 생성하지 않음
# --shell /sbin/nologin: 로그인 불가 설정
2. Kafka가 설치된 경로(/user/local/kafka)의 소유권 변경
sudo chown -R kafka:kafka /user/local/kafka
3. zookeeper 및 kafka service 파일에 user 추가
sudo vim /etc/systemd/system/kafka.service
# 다음을 작성하세요.
[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
[Service]
Type=simple
User=kafka
Environment="JAVA_HOME=/usr/lib/jvm/jre-17-openjdk"
ExecStart=/usr/bin/bash /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/bin/bash /usr/local/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
[참조]
'제품 > Kafka' 카테고리의 다른 글
| Replications(복제) - 리더와 팔로워 (0) | 2024.12.22 |
|---|---|
| [Kafka]Kafka, Zookeeper properties 파일 구성하기 (0) | 2024.09.20 |
| [Kafka] .bashrc에 Kafka CLI command path 지정하기 (0) | 2024.09.19 |
| Apache Kafka UI 설치하기 (0) | 2024.09.18 |
| [Kafka] CLI (0) | 2024.09.17 |