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 |