sudo apt-get update
sudo apt-get install default-jre # java 설치
curl "https://archive.apache.org/dist/kafka/2.7.2/kafka_2.12-2.7.2.tgz" -o ./kafka.tgz # kafka 설치
$ cd kafka
$ tar -xvzf kafka.tgz --strip 1
$ export KAFKA_HEAP_OPTS="-Xms400m -Xmx400m”
$ echo $KAFKA_HEAP_OPTS
vi /home/ubuntu/.bashrc
.bashrc 내 내용추가
export KAFKA_HEAP_OPTS="-Xms400m -Xmx400m"
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
export PATH=$PATH:$JAVA_HOME/bin
vi /kafka/config/server.properties
advertised.listeners=PLAINTEXT://서버 아이피:9092
log.dirs=/home/ubuntu/kafka/logs
sudo vi /etc/systemd/system/zookeeper.service
내용 :
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
User=ubuntu
ExecStart=/home/ubuntu/kafka/bin/zookeeper-server-start.sh /home/ubuntu/kafka/config/zookeeper.properties
ExecStop=/home/ubuntu/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
sudo vi /etc/systemd/system/kafka.service
내용 :
[Unit]
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
User=ubuntu
ExecStart=/bin/sh -c '/home/ubuntu/kafka/bin/kafka-server-start.sh
/home/ubuntu/kafka/config/server.properties >
/home/ubuntu/kafka/kafka.log 2>&1'
ExecStop=/home/ubuntu/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
sudo systemctl start kafka
sudo systemctl status kafka
failed가 아닌 running이 떠야한다.
sudo systemctl enable zookeeper
sudo systemctl enable kafka
echo 1> ~/kafka/zookeeper/myid
vi ~/kafka/config/zookeeper.properties
내용:
initLimit=5
syncLimit=2
server.1=서버1아이피:2888:3888
server.2=서버2아이피:2888:3888
server.3=서버3아이피:2888:3888
나중에 실행시에 zookeeper가 자꾸 꺼진다면
https://stackoverflow.com/questions/30940981/zookeeper-error-cannot-open-channel-to-x-at-election-address/30993130#30993130?newreg=08fbe3fd0a464f8ebaf41b598b19f2dc
여기 내용처럼 작성중인 서버의 아이피는 0.0.0.0으로 바꿔주면 해결되었다.
vi ~/kafka/config/server.properties
broker.id=0~2 (각 서버별로 다르게)
advertised.listener=PLAINTEXT://현재 서버 아이피
zookeeper.connect= (각서버의 privateIP)
sudo service kafka start
sudo service kafka status
이때 zookeeper는 실행되고 있는데 kafka는 failed라고 나올 경우
https://stackoverflow.com/questions/67705738/problem-with-kafka-failed-with-result-exit-code-status-1-failure
이 내용처럼 logs의 meta.properties에서 brocker.id를 바꾸 server.properties의 작성한 것과 같이 작성하고 cluster.id를 주석처리해주면 해결되었다.