Ssup2 Blog logo Ssup2 Blog

1. 설치, 실행 환경

설치, 실행 환경은 다음과 같다.

2. Java, Zookeeper 설치

# apt install openjdk-8-jdk -y
# apt install zookeeperd -y

Java, Zookeeper Package를 설치한다.

3. Kafka 설치

# useradd -d /opt/kafka -s /bin/bash kafka
# passwd kafka
Enter new UNIX password: kafka
Retype new UNIX password: kafka

kafka 계정을 생성한다.

# cd /opt
# wget http://www-eu.apache.org/dist/kafka/2.0.0/kafka_2.11-2.0.0.tgz
# mkdir -p /opt/kafka
# tar -xf kafka_2.11-2.0.0.tgz -C /opt/kafka --strip-components=1
# chown -R kafka:kafka /opt/kafka

Kafka Download 및 압축을 푼다.

...
delete.topic.enable = true
[파일 1] /opt/kafka/config/server.properties

/opt/kafka/config/server.properties 파일의 마지막에 [파일 1]의 내용을 추가한다.

...

[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=kafka
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target
[파일 2] /lib/systemd/system/zookeeper.service

/lib/systemd/system/zookeeper.service에 [파일 2]의 내용을 저장한다.

[Unit]
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties'
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target
[파일 3] /lib/systemd/system/kafka.service

/lib/systemd/system/kafka.service에 [파일 3]의 내용을 저장한다.

# systemctl daemon-reload
# systemctl start zookeeper
# systemctl enable zookeeper
# systemctl start kafka
# systemctl enable kafka

Zookeeper, Kafka를 시작한다.

# netstat -plntu
...
tcp6       0      0 :::9092                 :::*                    LISTEN      3005/java
tcp6       0      0 :::2181                 :::*                    LISTEN      2372/java

Zookeeper, Kafka 구동을 확인한다.

4. Kafka Test

# su - kafka
$ cd bin/
$ ./kafka-topics.sh --create --zookeeper localhost:2181 \
--replication-factor 1 --partitions 1 \
--topic HakaseTesting

HakaseTesting Topic을 생성한다.

# su - kafka
$ cd bin/
$ ./kafka-console-producer.sh --broker-list localhost:9092 \
--topic HakaseTesting
> test 123

새로운 Terminal을 띄워 Producer를 실행한다.

# su - kafka
$ cd bin/
$ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic HakaseTesting --from-beginning
> test 123

새로운 Terminal을 띄워 Consumer를 실행한다.

5. 참조