(Deprecated) Kafka 설치하기

By | 2020년 3월 14일
Table of Contents

(Deprecated) Kafka 설치하기

Deprecated

여기 를 참조하여 설치하세요.

JDK 설치하기

자바 8 버전 이상이 설치되어 있지 않으면 아래의 명령으로 설치합니다.

sudo apt-get update
sudo apt install openjdk-11-jdk

zookeeper 설치하기

Kafka 는 zookeeper 상에서 작동하므로, zookeeper 를 먼저 설치합니다.

sudo apt-get install zookeeperd

Kafka 설치하기

Kafka 를 실행할 전용 계정을 생성해 줍니다.

sudo adduser --system --no-create-home --disabled-password --disabled-login kafka

Kafka 를 다운받아 설치합니다.

cd /tmp/
wget http://mirror.navercorp.com/apache/kafka/2.4.1/kafka_2.13-2.4.1.tgz

sudo mkdir /opt/kafka
sudo tar -xvzf kafka_2.13-2.4.1.tgz --directory /opt/kafka --strip-components 1

sudo mkdir /var/lib/kafka
sudo mkdir /var/lib/kafka/data

아래의 설정을 추가합니다.

sudo vi /opt/kafka/config/server.properties
......
log.dirs=/var/lib/kafka/data
......

디렉토리의 권한을 설정합니다.

sudo chown -R kafka:nogroup /opt/kafka
sudo chown -R kafka:nogroup /var/lib/kafka

서비스에 등록해 줍니다.

sudo vi /etc/systemd/system/kafka.service
[Unit]
Description=High-available, distributed message broker
After=network.target
[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
[Install]
WantedBy=multi-user.target

Kafka 를 실행합니다.

sudo systemctl start kafka.service
sudo systemctl enable kafka.service

메모리가 부족한 경우, 아래 파일을 열고 KAFKA_HEAP_OPTS 를 찾아 수정해 줍니다.

sudo vi /opt/kafka/bin/zookeeper-server-start.sh
sudo vi /opt/kafka/bin/kafka-server-start.sh
# for zookeeper
export KAFKA_HEAP_OPTS="-Xmx4M -Xms4M"
# for kafka
export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"

운영환경에서 Kafka 를 설치하려면 4G 의 메모리를 가지는 t2.medium 이상이 권장됩니다.

Kafka 정상설치 테스트하기

테스트용 토픽을 생성합니다.

/opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

생성된 토픽을 확인합니다.

/opt/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181

토픽에 메시지를 전달합니다.

/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

터미널을 새로 열어 메시지가 전달되었는지 확인합니다.

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

중요 파라미터

sudo vi /opt/kafka/config/server.properties
......
# log.retention.hours=168
log.retention.ms=3000
......
log.dirs=/var/lib/kafka/data
......

log.retention 은 토픽이 유지되는 시간입니다. Kafka 는 토픽이 소모된 이후에도 해당 시간동안 토픽을 삭제하지 않고 유지합니다. 토픽을 유지해야 할 이유가 없을 때는 빠른 시간안에 토픽을 삭제하는 것이 좋습니다.

log.dirs 에 로그파일이 저장됩니다.

답글 남기기