본문 바로가기
BIG-DATA/KAFKA

[KAFKA] 무작정 시작하기 (2) - Zookeeper 설정

by 허도치 2019. 11. 20.

  이번 포스트에서는 Zookeeper에 대해서 간략하게 알아보고, zookeeper.properteis를 작성해 보도록하겠다. 

 

 

1. zookeeper란?

   1-1. zookeeper는 Apache의 오픈 소스 프로젝트 중 하나이며, 공개 분산형 구성 서비스, 동기 서비스 및 대용량 분산 시스템을 위한 네임 스페이스 레지스트리를 제공함.

   1-2. znode(주키퍼 노드)는 네임 스페이스 안에 데이터를 저장하며, 클라이언트는 znode를 통해 데이터를 읽거나 씀.

   1-3. 리더 노드가 존재하며, 리더를 제외한 노드들은 리더로부터 데이터를 동기화함.

   1-4. 리더가 장애가 발생하게되면 다른 노드가 리더의 역할을 맡아 안정성이 뛰어남.

   1-5. 일반적인 파일 시스템과 달리 zookeeper 데이터는 메모리에 보관되므로 높은 처리량과 낮은 대기 시간을 갖음.

Zookeeper 구조: https://zookeeper.apache.org/doc/current/zookeeperOver.html#sc_designGoals

 

Zookeeper의 네임스페이스 구조: https://zookeeper.apache.org/doc/current/zookeeperOver.html#sc_designGoals

2. zookeeper.properties 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# zookeeper 데이터 위치, 원하는 경로에 저장입력.
dataDir=C:/work/kafka_2.12-2.1.0/data/zookeeper
 
# 하나의 클라이언트에서 동시접속하는 개수 제한, 기본값은 60이며, 0은 무제한
maxClientCnxns=0
    
# zookeeper port
clientPort=2181
 
# 멀티 서버 설정
# server.id=host:port:port
server.1=localhost:2888:3888
# server.2=server_host_1:2888:3888
# server.3=server_host_2:2888:3888
 
# 멀티 서버 설정시 각 서버의 dataDir 밑에 myid 파일이 있어야함.
# echo 1 > myid
 
# 리더 서버에 연결해서 동기화하는 시간, [멀티서버옵션]
#initLimit=5
 
# 리더 서버를 제외한 노드 서버가 리더와 동기화하는 시간, [멀티서버옵션]
#syncLimit=2
 
# 토픽을 삭제할 수 있도록 설정
delete.topic.enable=true
 
cs

 

   2-1. 더 많은 정보를 원한다면 역시 공식 문서가 최고임. ( zookeeper )

 

ZooKeeper Administrator's Guide

The implementations of leader election 1 and 2 are currently not supported, and we have the intention of deprecating them in the near future. Implementations 0 and 3 are currently supported, and we plan to keep supporting them in the near future. To avoid

zookeeper.apache.org

 

3. zookeeper 실행

   3-1. zookeeper_server_start.bat를 실행하면 [ dataDir ]에 data파일이 생성되는 것을 확인할 수 있음.

 

 

 

이상으로 zookeeper에 대하여 간단하게 알아보고 properties를 작성해보았다. 어려운 부분이 없어서 간략하게만 정리하고 다음 포스트로 넘어가도록 한다. 다음 포스트에서는 server.properties를 작성하도록 하겠다.

댓글