Skip to main content

Kafka, Zookeeper 설치 방법

1. 필수 요구사항 확인

1.1. Java 설치 확인

Kafka는 Java 기반으로 동작합니다. Java 8 이상이 필요하며, 설치 여부를 확인하세요.

java -version
  • 설치되지 않은 경우, OpenJDK 또는 Oracle JDK를 설치합니다.
brew update
brew install openjdk@11

1.2. 디스크 공간 확인

Kafka는 로그 데이터를 저장하므로 충분한 디스크 공간이 필요합니다. 기본적으로 /tmp/kafka-logs에 저장됩니다.


2. ZooKeeper 설치 및 실행

2.1. ZooKeeper 설치

ZooKeeper는 Kafka가 의존하는 분산 코디네이션 도구입니다. 아래 명령어로 설치합니다.

brew install zookeeper

2.2. ZooKeeper 실행

ZooKeeper를 시작하려면 다음 명령어를 사용합니다.

zkServer start

2.3. ZooKeeper 실행 상태 확인

ZooKeeper 실행 상태를 확인하려면 아래 명령어를 사용하세요.

zkServer status

2.4. ZooKeeper 설정 파일 주요 항목

ZooKeeper 설정 파일은 일반적으로 /etc/zookeeper/conf/zoo.cfg에 위치합니다. 아래는 주요 설정 항목입니다

dataDir=/var/lib/zookeeper
clientPort=2181
maxClientCnxns=60
initLimit=10
syncLimit=5
server.1=localhost:2888:3888
  • dataDir:

    • ZooKeeper 데이터(스냅샷과 트랜잭션 로그)가 저장되는 디렉터리입니다.
    • ZooKeeper가 실행 중인 서버의 디스크 경로를 지정합니다.
    • 예: /usr/local/var/run/zookeeper.
  • clientPort:

    • 클라이언트가 ZooKeeper에 연결하기 위한 네트워크 포트 번호입니다.
    • 기본값은 2181이며, 클라이언트가 ZooKeeper에 요청을 보내는 진입점 역할을 합니다.
  • maxClientCnxns:

    • ZooKeeper에 연결할 수 있는 클라이언트의 최대 연결 수를 제한합니다.
    • 하나의 클라이언트(또는 IP 주소)에서 과도한 연결을 방지하는 역할을 합니다.
  • initLimit:

    • ZooKeeper 클러스터에서 팔로워(follower)가 리더(leader)와 초기 데이터 동기화를 완료하는 데 필요한 시간(틱 수)을 설정합니다.
    • 이 시간이 초과되면 동기화가 실패로 간주됩니다.
  • syncLimit:

    • ZooKeeper 팔로워가 리더와 데이터 동기화를 유지할 수 있는 시간(틱 수)을 설정합니다.
    • 리더와의 동기화가 이 시간보다 오래 중단되면 팔로워가 재시작됩니다.
  • server.x:

    • ZooKeeper 서버가 클러스터 모드로 동작할 때, 각 서버의 정보를 설정합니다.
    • 형식: server.<ID>=<호스트>:<follower-to-leader>:<leader-to-follower>.
      • <ID>: ZooKeeper 서버 ID.
      • <호스트>: ZooKeeper 서버의 호스트 이름 또는 IP.
      • <follower-to-leader>: 팔로워가 리더에게 요청을 보낼 때 사용하는 포트.
      • <leader-to-follower>: 리더가 팔로워와 연결할 때 사용하는 포트.

3. Kafka 다운로드 및 설치

3.1. Kafka 다운로드

brew install kafka

3.2. Kafka 실행

Kafka 브로커를 실행하려면 ZooKeeper가 실행 중인지 확인한 후 아래 명령어를 실행

kafka-server-start /usr/local/etc/kafka/server.properties



4. 환경변수 설정

4.1. 환경변수 설정

~/.bashrc 또는 ~/.zshrc 파일을 열고 아래 내용을 추가합니다.

export KAFKA_HOME=/usr/local/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin

4.2. 환경변수 적용

source ~/.bashrc

5. Kafka 설정 파일 예제

5.1. 설정 파일 위치

Kafka 설정 파일은 보통 /usr/local/etc/kafka/server.properties에 위치합니다.

5.2. 주요 설정 항목

broker.id=0
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
num.partitions=1
default.replication.factor=1
  • broker.id: 브로커 ID를 설정합니다. 클러스터에서 고유해야 합니다.
  • log.dirs: Kafka 로그 데이터가 저장될 디렉터리 경로.
  • zookeeper.connect: ZooKeeper 주소 및 포트 정보.
  • num.partitions: 새로 생성되는 토픽의 기본 파티션 수.
  • default.replication.factor: 새로 생성되는 토픽의 기본 복제본 수.