본문 바로가기
개발 지식/Kafka

[Kafka] kafka 설치 및 실습 - 01 (Mac)

by 에르주 2021. 10. 27.
반응형

이번 2장은 실제 Kafka를 설치해보는 것을 정리해보려한다.

내가 참고하는 책에서는 Linux Ubuntu 기반의 설치 및 실습을 진행하는데 나에게는 Macbook이라는 훌륭한 개발 머신이 있기 때문에 Macbook에서 설치 및 실습을 하고자 한다.

 

추가로 Docker를 활용하여 컨테이너에 kafka를 설치하고 실습을 진행해보고자 한다. 후에 Docker는 정리하고자 한다.

 

Docker를 활용한다고 했으므로 Docker부터 설치해보자.

https://www.docker.com/products/docker-desktop

 

Docker Desktop for Mac and Windows | Docker

Learn why Docker Desktop is the preferred choice for millions of developers building containerized applications. Download for Mac or Windows.

www.docker.com

 

OS에 따라 그리고 Chip에 따라 설치를 진행한다.

docker -v # docker 버전
docker-compose -v # docker-compose 버전

 

Docker version 확인

mac 환경에서 docker 설치시 docker-compose 또한 자동으로 설치 된다.

그리고 나는 kafka 실습에는 docker-compose를 활용할 것이다.

왜냐하면 kafka와 Zookeeper(분산 시스템을 코디네이트 하는 시스템 즉 kafka 분산 처리에 대한 코디네이트를 진행한다고 보면 될 것 같다.)두개를 모두 활용하기 위해서 사용한다. 그리고 docker-compose의 설명은 다음과 같다. 

Docker Compose
 It is a tool that was developed to help define and share multi-container applications. With Compose, we can create a YAML file to define the services and with a single command, can spin everything up or tear it all down

// Docker Compse
이 것은 멀티 컨테이너 어플리케이션을 정의하고 공유하는 것을 도와주기 위해 개발되었다. Compose를  활용하면 우리는 서비스를 정의한 YAML 파일을 생성할 수 있고 명령 하나로 모든 것을 실행시키거나 해체 할 수 있습니다.

 

그리고 docker search 명령어를 활용하여 docker내 kafka 이미지를 검색해보면

docker search kafka

kafka search

여기서 가장 STAR가 많은 

wurstmeister/kafka를 활용해보자.

git clone https://github.com/wurstmeister/kafka-docker

git clone을 받은 자리에 docker-compose.yml값을 다음과 같이 수정하자

 

수정한 항목은 2가지로

1) KAFKA_ADVERTISED_HOST_NAME : 127.0.0.1

2) KAFKA_CREATE_TOPICs : "ErJuer:1:1"

# docker-compose.yml
version: '2'
services:
  zookeeper:
    container_name: er-zookeeper
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    container_name: er-kafka
    image: wurstmeister/kafka
    depends_on:
      - zookeeper
    ports:
      - "9092"
    environment:
      DOCKER_API_VERSION: 1.22
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_CREATE_TOPICs: "ErJuer:1:1"  # Topic명:Partition개수:Replica개수 
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

 

내가 정의한 docker-compose 값을 background로 실행시킨다.

그러면 docker-compose.yml에서 정의한 zookeeper와 kafka가 실행된다.


or(docker-compose -f docker-compose-single-broker.yml up -d)

compose run
Docker 이미지 확인

 

해당 컨테이너의 로그를 확인하기 위해서는 다음과 같은 명령어를 입력하면 확인 할 수 있다.

docker container logs er-zookeeper #zookeeper 로그 확인
docker container logs er-kafka # kafka 로그 확인

 

docker container logs er-zookeeper #zookeeper 로그 확인 예시

 

Docker 컨테이너 안에 kafka 및 zookeeper 설치 및 설정이 완료되었다.

그 다음장은 실제로 토픽(ErJuer)을 생성해보고 메시지 값들을 확인하고 받을 수 있는지 실습을 진행해보고자 한다.

 

끝.

반응형

댓글