Free Lines Arrow
본문 바로가기
Message Queue/Kafka

[Kafka] docker 카프카 설치

by skahn1215 2023. 8. 18.
728x90
반응형

카프카  도커 설치

  • 먼저 서버 2대로 실습을 해본다.
  • 카프카 서버
  • 주키퍼 서버
  • docker compose 를 쓰면 되지만 직접 설치해 보고 연동을 해본다.
  • 2개 도커를 docker network 로 연결을 해줘야 통신이된다.

 

Zookeeper 설치

1. 우분투 이미지를 가져온다.

docker pull ubuntu

 

2. zookeeper 설치를 위한 ubuntu 를 띄운다.

docker run -it -p 2181:2181 --name zookeeper ubuntu

아래처럼 도커가 띄워진걸 확인한다.

 

 

3. zookeeper 도커에 접속

docker attach zookeeper

 

4. 기본 설정 및 zookeeper 다운로드

apt-get update
apt-get install -y wget         // wget 설치 파일 다운로드를 위함.
apt-get install openjdk-11-jdk // 자바 설치

cd /user/service                // 서비스 디렉토리 이동

// 주키퍼 다운로드
wegt https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.9.0/apache-zookeeper-3.9.0-bin.tar.gz

// 압축 해제
tar -xvf ./apache-zookeeper-3.9.0-bin.tar.gz

// 심볼릭 링크 생성
ln -s apache-zookeeper-3.9.0-bin zookeeper

 

5. zookeeper 설정

cd /usr/service/zookeeper/conf // 환경 설정 경로로 이동
cp zoo_sample.cfg zoo.cfg // 기존 예제 파일 복사
vi ./zoo.cfg // 환경설정 파일 편집기를 열고 아래 처럼 입력해준다.

아래 처럼 입력을 해준다.

 

6. zookeeper 실행

./zkServer.sh ../conf/zoo.cfg

 

Kafka 설치

1. kafka 설치를 위한 ubuntu 를 띄운다.

docker run -it -p 9092:9092 --name kafka ubuntu

 

 

두개의 도커를 동일한 네트워크에 연결

docker network create kafka_default

docker network connect kafka_default kafka // 카프카 네트워크 연결
docker network connect kafka_default zookeeper // 주키퍼 네트워크 연결
docker network inspect kafka_default // 연결된 정보 확인
"Name": "zookeeper" 의 IP 를 기억해두자
"IPv4Address": "172.18.0.3/16",


[
    {
        "Name": "kafka_default",
        "Id": "606f1e675bb3180d1bcbfd66d85f31dd7af9a0ea32fb5f7c88d92d070e772fb1",
        "Created": "2022-12-20T07:37:20.902265839Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "12cc71d813f00e475c1d0595e92bf95d74cf987916b16428cd3b6d6d19dc559d": {
                "Name": "kafka",
                "EndpointID": "73523394d77484e720e13e1c0c74d1239f4f33616f8b98d5c40755a05cf6a9bb",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            },
            "e10fbfd09bc8637ba6de18a8201dca5b290b250409f9878e54d75b085da10e8e": {
                "Name": "zookeeper",
                "EndpointID": "0e8167ca3d0d6d450c093203ffc936ec70448f2fe0f488ec91a8dac0377b02ff",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4Address": "172.18.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "default",
            "com.docker.compose.project": "kafka",
            "com.docker.compose.version": "1.29.2"
        }
    }
]

 

 

 

2. kafka 도커 접속

docker attach kafka

 

3. 기본 설정 및 zookeeper 다운로드

 

apt-get update
apt-get install -y wget         // wget 설치 파일 다운로드를 위함.
apt-get install openjdk-11-jdk // 자바 설치

cd /user/service                // 서비스 디렉토리 이동


wget https://archive.apache.org/dist/kafka/3.2.1/kafka_2.13-3.2.1.tgz // 주키퍼 다운로드
 
 
tar -xvf kafka_2.13-3.2.1.tgz // 주키퍼 압축 해제

 

4.  kafka 환경 설정

vi ./usr/service/kafka_2.13-3.2.1/config/server.properties


listeners 와 advertised.listeners 를 검색하여 아래와 같이 입력해준다.


listeners=PLAINTEXT://localhost:9092
advertised.listeners=PLAINTEXT://localhost:9092

아래 주키퍼 zookeeper.connect= 를 찾아 위에서 기억해 두었던 zookeeper ip 를 넣어주자.

############################# Zookeeper #############################

# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=172.18.0.3:2181

# Timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms=18000

 

 

5.  kafka 실행

 ./kafka-server-start.sh ../config/server.properties

 

 

 

카프카가 정상 동작 되면 설정을 잘 맞춰다는 것이다.

728x90
반응형

댓글