Kafka Installation

문주은·2024년 1월 18일

1. Installation in Docker

1-1. docker 설치

Reference : https://link2me.tistory.com/2088

  • docker status 확인
    $ systemctl status docker

1-2. docker-compose 설치 (ubuntu)

$ sudo apt  install docker-compose (ubuntu)
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose   (centos)
$ sudo chmod +x /usr/local/bin/docker-compose
  • sudo 권한 없이 docker 명령어 실행 : $ sudo usermod -aG docker {사용자명}

1-3.docker compose 실행

$ docker-compose up -d : 실행

  • 도커 이미지(kafka, zookeeper) 한번에 다운 및 컨테이너 실행
  • kafka, zookeeper는 종속 관계로 docker-compose 사용
  • kafka docker-compose yml 에서 'KAFKA_ADVERTISED_HOST_NAME: kafka' -> 'KAFKA_ADVERTISED_HOST_NAME: { ip주소 }' 변경

$ docker ps : 컨테이너 실행 여부 확인
$ docker-compose down / docker-compose stop : 종료

1-4.kafka container 에서 설정

$ docker exec -it kafka bash : kafka container 접속
$ bash# vi /opt/kafka/config/server.properties : kafka server 설정 값 변경

  • 주석 제거& 공인 ip
    > listeners=PLAINTEXT://:9092
  • 토픽 삭제 가능하도록
    > delete.topic.enable=true

$ docker stop kafka
$ docker start kafka

1-5.kafka 테스트

  • $ docker exec -it kafka bash : kafka container 접속

  • $ bash# cd /opt/kafka/bin : kafka shell 파일이 있는 위치로

  • producer console 활용하여 msg 전송

    $ bash#   kafka-console-producer.sh --topic test --broker-list localhost:9092 
    - > This is a test msg
  • consumer console 활용하여 msg 확인

    $ bash#   kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning
    - > This is a test msg

    이와 같은 msg 확인 되면 테스트 완료

1-6. kafka ui dashboard local 환경에서 작동 테스트

Project와 연동
- producer <-> kafka 연동


2. Installation in Onpremise

2-1. java install

## 설치
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install openjdk-11-jdk

## 설치 확인
$ javac -version

## 환경 설정
$ sudo apt-get install gedit
$ sudo vi ~/.bashrc
$ export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
$ source ~/.bashrc   # bashrc 변경 사항 적용

2-2. kafka install

## 설치
$ sudo wget https://downloads.apache.org/kafka/3.0.2/kafka_2.13-3.0.2.tgz

# 압축해제
$ sudo tar xzf kafka_2.13-3.0.2.tgz

# zookeeper 데몬 등록
$ sudo vim /etc/systemd/system/zookeeper.service

* zookeeper.service

[Unit] 
Description=Apache Zookeeper service 
Documentation=http://zookeeper.apache.org 
Requires=network.target remote-fs.target 
After=network.target remote-fs.target 
[Service] 
Type=simple 
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

# kafka 데몬 등록
$ sudo vim /etc/systemd/system/kafka.service

* kafka.service

[Unit] 
Description=Apache Kafka Service 
Documentation=http://kafka.apache.org/documentation.html 
Requires=zookeeper.service 
[Service] 
Type=simple 
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties 
ExecStop=/opt/kafka/bin/kafka-server-stop.sh 
[Install] 
WantedBy=multi-user.target

2-3. install in CentOs

참고 https://bkjeon1614.tistory.com/634

  • 방화벽 설정
    - systemctl start firewalld
    - firewall-cmd --permanent --zone=public --add-port=9092/tcp
    - firewall-cmd --reload

  • __consumer_offsets:1:3 의미
    - 1 : partition number
    - 3 : offset number

profile
Data Engineer

0개의 댓글