본문 바로가기
Server-side 개발 & 트러블 슈팅/🦍 ZooKeeper (주키퍼)

[ZooKeeper] 주키퍼 설치 및 설정 가이드 (Mac OS, Windows, Linux)

by 코딩하는 동현 2025. 4. 12.

ZooKeeper 설치 및 설정 가이드

 

분산 시스템을 설계하고 실습하기 위해 Apache ZooKeeper를 로컬에 설치하는 방법을 운영체제별로 정리했습니다.

ZooKeeper는 리더 선출 알고리즘을 포함한 다양한 분산 알고리즘을 실습하는 데 핵심적인 도구입니다.

 

필자Mac OS 환경에서 설치했습니다.

 


 

ZooKeeper란?

 

ZooKeeper는 분산 시스템에서 노드 간의 일관성과 조율을 담당하는 오픈소스 분산 코디네이터이다. Apache Kafka, Hadoop, HBase 등의 프로젝트에서 기본적으로 사용된다.

 

ZooKeeper는 다음과 같은 기능을 제공한다:

 

  • 리더 선출
  • 서비스 레지스트리 및 디스커버리
  • 상태 감시 및 고장 감지
  • 분산 락(Distributed Lock)
  • 파일 시스템처럼 동작하는 트리형 데이터 구조 (ZNode)

 


 

🗂 설치 준비 사항 (공통)

 

1. Java JDK 설치 (1.8 이상

javac -version

 

JAVA_HOME 환경 변수도 반드시 설정되어 있어야 함.

 


 

🍎 macOS 설치

 

1. Homebrew를 이용한 설치

brew install zookeeper

 

 

설치 로그를 보고 zookeeper 경로를 확인합니다. (인텔맥인 경우 경로가 다르다.)

/opt/homebrew/etc/zookeeper         ← 설정 파일 (zoo.cfg 등)
/opt/homebrew/opt/zookeeper/bin     ← 실행 스크립트 (zkServer 등)
/opt/homebrew/var/lib/zookeeper     ← 데이터 디렉토리

 

zoo.cfg 파일을 확인할수 있다. (설정 파일)

 

2. ZooKeeper 실행 및 종료

zkServer start     # ZooKeeper 시작
zkServer stop      # ZooKeeper 종료
zkServer status    # 상태 확인

 

 

3. ZooKeeper CLI 실행

zkCli

 

 


🪟 Windows 설치

 

1. 압축파일 다운로드 및 구성

ZooKeeper 다운로드

구성

  • apache-zookeeper-x.x.x-bin.zip 파일 다운로드 후 압축 해제
  • 압축을 푼 디렉토리에서 conf/zoo_sample.cfgzoo.cfg로 이름 변경

 

2. 설정 파일 수정

 

  • dataDir을 적절한 경로로 설정 (예: C:/zookeeper/data)
  • 해당 폴더를 미리 생성해둘 것

 

3. ZooKeeper 실행

 

CMD를 열고 bin 폴더로 이동 후:

zkServer.cmd

 

CLI 사용 시에는 새 창에서:

zkCli.cmd

 


🐧 Linux 설치

 

1. 설치 및 압축 해제

wget https://downloads.apache.org/zookeeper/zookeeper-X.X.X/apache-zookeeper-X.X.X-bin.tar.gz
tar -xvzf apache-zookeeper-X.X.X-bin.tar.gz
cd apache-zookeeper-X.X.X-bin

 

 

2. 설정 파일 구성

cp conf/zoo_sample.cfg conf/zoo.cfg
mkdir -p /var/lib/zookeeper

conf/zoo.cfg 파일의 dataDir/var/lib/zookeeper로 변경

 

3. ZooKeeper 실행

bin/zkServer.sh start

 

CLI 실행:

bin/zkCli.sh

 


 

🧪 ZooKeeper CLI로 테스트

ls /                          # 루트 Z노드 보기
create /parent "부모노드"       # Z노드 생성
create /parent/child "자식"    # 하위 Z노드 생성
get /parent                  # 노드 정보 확인
deleteall /parent            # 부모와 하위 노드 삭제

 


오류 해결

⚠️ 예외: NoNodeException: KeeperErrorCode = NoNode for /election/c_

 

해결 방법:

# CLI에서 먼저 election 노드 생성
create /election ""

 

 

마무리

이제 ZooKeeper가 로컬에 정상적으로 설치되었으며, CLI를 통한 ZNode 생성, 조회, 삭제 등의 작업도 가능하다. 다음 단계에서는 ZooKeeper Java API를 사용하여 실제 분산 알고리즘을 구현하게 된다.

반응형

댓글