0. Table of content

 

 

 

1. 목표 아키텍처

 

 

 

 

 

2. Apache Kafka Download

 

다음 명령어를 통해 Apache Kafka 최신 버전을 다운받고 java1.8을 설치한다.

sudo yum install -y java-1.8.0-openjdk-devel.x86_64
 
wget http://apache.mirror.cdnetworks.com/kafka/2.5.0/kafka-2.5.0-src.tgz
 
tar -xzf kafka-2.5.0-src.tgz

 

압축을 해제하면 다음과 같은 구조의 디렉토리를 볼 수 있을 것이다.

 

 

 

3. Zookeeper Cluster Configuration

 

Zookeeper Cluster를 구성하기 위해 3개의 VM을 생성하였으며, 상세 config 및 서버 스펙은 다음과 같다.

IP AddressZookeeper IdKafka Broker IdInstance Type

IP Address Zookeeper Id Kafka Broker Id Instance Type
10.0.6.218 1 1 t2.medium
10.0.7.5 2 2 t2.medium
10.0.6.195 3 3 t2.medium

 

ZooKeeper 데이터 디렉토리에는 특정 서빙 앙상블에 의해 저장된 znodes의 영구 사본 인 파일이 있습니다.

각 zookeeper의 설정을 {kafkaDir}/config/zookeeper.properties에 다음과 같이 3개의 vm에 입력한다.

# 여러 zookeeper에 의해 저장된 znode의 사본과 zookeeper id를 저장하는 dir
dataDir=/home/ec2-user/zookeeper

# zookeeper가 coordinate하고 있는 kafka에 접속하기 위한 클라이언트 port
clientPort=2181

# 클라이언트 connection 접속 제한 개수
maxClientCnxns=10

# Follower가 leader에 접속하고 싱크를 맞추기 위해 허용된 시간. 값이 증가할수록 zookeeper가 책임지는 데이터의 양이 증가한다.
initLimit=5

to allow followers to sync with ZooKeeper. If followers fall too far behind a leader, they will be dropped.
# Follower가 Zookeeper에 싱크를 맞추기 위해 허용된 시간. Follower가 leader에 대해 싱크를 맞추지 못하면 drop 된다고 햔다.
syncLimit=2

# Zookeeper VM의 정보
# 형식 : server.{id}={VM HostName or IP address}:{Cluster Sync Port}:{Leader Election Port}
# 입력시, localhost는 기입하지 않으며, 무조건 hostname, ip address를 이용하여 기입한더ㅏ.
server.1=10.0.6.218:2888:3888
server.2=10.0.7.5:2888:3888
server.3=10.0.6.195:2888:3888

 

 

또한, 각 Zookeeper id를 다음과 위에서 설정한 dataDir 경로에 myid라는 파일을 만들어 다음과 같이 입력한다.

echo 1 > {Your zookeeper dataDir in zookeeper.properties}/myid

 

입력한 후, 다음과 같이 각 VM의 zookeeper를 다음 명령어로 실행시킨다.

정상적으로 동작이 되는 경우는 첨부된 다음과 같은 사진과 같은 화면을 볼 수 있다.

# 테스트를 위해 데몬으로 실행시키지 않음.
# kafka cluster 실행을 위해서는 -daemon 옵션으로 백그라운드 실행시킨다.
bin/zookeeper-server-start.sh config/zookeeper.properties

 

 

4. Kafka Cluster Configuration

[업데이트 예정]

 

5. 참고자료

    - https://zookeeper.apache.org/doc/r3.4.7/zookeeperAdmin.html 

    - https://kafka.apache.org/documentation/#brokerconfigs 

 

6. 삽질프로젝트 로그

    - 20200630 : Zookeeper Cluster VM생성 완료

    - 20200701 : Zookeeper Cluster 구성완료

 

'IT > OpenSource' 카테고리의 다른 글

[OpenSource] Apache Kafka  (0) 2020.09.07
[Apache Kafka] Kafka Cluster 구성하기(수정중)  (0) 2020.07.01

+ Recent posts