맨위로가기

아파치 주키퍼

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

아파치 주키퍼는 분산 애플리케이션을 위한 고성능 코디네이션 서비스이다. 노드, ZNode, 클라이언트 및 서버 애플리케이션으로 구성된 아키텍처를 기반으로 하며, 클러스터의 서버("앙상블")에 데이터를 복제하여 저장한다. 주키퍼는 디렉토리 서비스, 구성 관리, 동기화, 리더 선정, 메시지 큐, 알림 시스템 등 다양한 용도로 사용되며, 렉스페이스, 야후, 이베이 등에서 활용된다. 아파치 하둡, 아파치 HBase, 아파치 카프카 등 다양한 아파치 프로젝트에서 주키퍼를 사용하며, 아파치 큐레이터와 같은 클라이언트 라이브러리를 통해 주키퍼 사용을 더욱 용이하게 할 수 있다.

더 읽어볼만한 페이지

  • 하둡 - 아파치 하둡
    아파치 하둡은 대용량 데이터를 분산 처리하기 위한 자바 기반의 오픈 소스 프레임워크로, HDFS, 맵리듀스, YARN 등의 모듈로 구성되어 클라우드 환경에서도 사용된다.
  • 하둡 - 맵리듀스
    맵리듀스는 대용량 데이터 처리를 위해 구글에서 개발한 프로그래밍 모델이자 프레임워크로, Map과 Reduce 함수를 사용하여 데이터를 병렬 처리하며 하둡 등의 오픈 소스 구현을 통해 널리 쓰인다.
  • 아파치 소프트웨어 재단 프로젝트 - 아파치 루씬
    아파치 루씬은 더그 커팅이 개발한 오픈 소스 전문 검색 라이브러리이며, 텍스트 색인 및 검색 기능을 제공하여 웹 검색 엔진, 퍼지 검색, 추천 시스템 구현 등에 사용된다.
  • 아파치 소프트웨어 재단 프로젝트 - 아파치 하둡
    아파치 하둡은 대용량 데이터를 분산 처리하기 위한 자바 기반의 오픈 소스 프레임워크로, HDFS, 맵리듀스, YARN 등의 모듈로 구성되어 클라우드 환경에서도 사용된다.
  • 자바로 작성된 자유 소프트웨어 - Jitsi
    Jitsi는 오픈 소스 화상 회의 솔루션으로, 학생 프로젝트에서 시작하여 여러 회사를 거쳐 현재 8x8에 인수되었으며, Jitsi Meet 등을 통해 간편한 화상 회의 기능을 제공하지만 개인 정보 보호에 대한 비판도 존재한다.
  • 자바로 작성된 자유 소프트웨어 - I2P
    I2P는 2003년 Freenet에서 분기된 익명 P2P 분산 통신 계층으로, IP 주소 노출을 방지하며 다양한 소프트웨어와 익명성 응용 프로그램을 지원하고, 기부금으로 운영되며 6~8주마다 릴리스를 진행한다.
아파치 주키퍼 - [IT 관련 정보]에 관한 문서
기본 정보
아파치 주키퍼 로고
아파치 주키퍼 로고
개발자아파치 소프트웨어 재단
최신 릴리스 버전3.8.1
최신 릴리스 날짜2023년 1월 30일
운영 체제크로스 플랫폼
플랫폼해당 없음
저장소ZooKeeper 저장소
프로그래밍 언어자바
장르분산 컴퓨팅
라이선스아파치 라이선스 2.0
웹사이트아파치 주키퍼

2. 아키텍처

아파치 주키퍼의 아키텍처는 고가용성을 중복 서비스를 통해 지원한다. 따라서 클라이언트는 첫 번째 주키퍼 리더가 응답하지 못할 경우 다른 주키퍼 리더에게 요청할 수 있다. 주키퍼 노드는 파일 시스템이나 트리 자료 구조와 매우 유사한 계층적 네임스페이스에 데이터를 저장한다. 클라이언트는 노드에서 읽고 쓸 수 있으며, 이러한 방식으로 공유 구성 서비스를 갖게 된다. 주키퍼는 업데이트가 전체 정렬되는 원자적 브로드캐스트 시스템으로 볼 수 있다. 주키퍼 원자 브로드캐스트(ZAB) 프로토콜은 시스템의 핵심이다.[4]

주키퍼는 옐프(Yelp), 랙스페이스(Rackspace), 야후! (Yahoo!),[5] 오드노클라스니키(Odnoklassniki), 레딧(Reddit),[6] 넷앱(NetApp), 솔리드파이어(SolidFire),[7] 메타(Meta),[8] 트위터 (Twitter)[9]이베이(eBay)와 같은 회사뿐만 아니라 오픈 소스 엔터프라이즈 검색 시스템(예: 솔라 (Solr)) 및 아파치 피노트 (Apache Pinot)와 같은 분산 데이터베이스 시스템에서 사용된다.[10][11]

주키퍼는 구글의 첩비 잠금 서비스를 모델로 했으며,[12][13] 원래 야후!에서 주키퍼 서버의 로컬 로그 파일에 상태를 저장하여 빅 데이터 클러스터에서 실행되는 프로세스를 간소화하기 위해 개발되었다. 이러한 서버는 클라이언트 머신과 통신하여 정보를 제공한다. 주키퍼는 분산 빅 데이터 애플리케이션을 배포하는 동안 발생하는 버그를 수정하기 위해 개발되었다.

아파치 주키퍼의 주요 기능은 다음과 같다.


  • 안정적인 시스템: 이 시스템은 일부 노드의 작동이 중단되더라도 계속 작동하므로 상당히 안정적이다.
  • 단순한 아키텍처: 주키퍼의 아키텍처는 프로세스를 조정하는 데 도움이 되는 공유 계층적 네임스페이스가 있으므로 매우 간단하다.
  • 빠른 처리: 주키퍼는 특히 "읽기 지배적" 워크로드(즉, 읽기가 쓰기보다 훨씬 일반적인 워크로드)에서 빠르다.
  • 확장 가능: 노드를 추가하여 주키퍼의 성능을 향상시킬 수 있다.


주키퍼 아키텍처와 관련된 몇 가지 일반적인 용어는 다음과 같다.

용어설명
노드클러스터에 설치된 시스템
지노드(ZNode)클러스터의 다른 노드에서 상태가 업데이트되는 노드
클라이언트 애플리케이션분산 애플리케이션과 상호 작용하는 도구
서버 애플리케이션클라이언트 애플리케이션이 공통 인터페이스를 사용하여 상호 작용할 수 있도록 지원



클러스터의 서비스는 일련의 서버("앙상블"이라고 함)에 복제되어 저장되며, 각 서버는 전체 상태 데이터 트리뿐만 아니라 트랜잭션 로그 및 스냅샷을 영구적으로 저장하는 인 메모리 데이터베이스를 유지 관리한다. 여러 클라이언트 애플리케이션이 서버에 연결할 수 있으며, 각 클라이언트는 요청과 하트비트를 보내고 응답과 감시 이벤트를 수신하여 모니터링하는 TCP 연결을 유지 관리한다.[14]

3. 이용 사례

렉스페이스, 야후, 이베이 등과 같은 회사에서 아파치 주키퍼를 사용하고 있다.[18] 옐프, 랙스페이스, 야후!,[5] 오드노클라스니키, 레딧,[6] 넷앱, 솔리드파이어,[7] 메타,[8] 트위터[9]이베이와 같은 회사뿐만 아니라 오픈 소스 엔터프라이즈 검색 시스템(예: 솔라) 및 아파치 피노트와 같은 분산 데이터베이스 시스템에서도 사용된다.[10][11]

주키퍼는 구글의 첩비 잠금 서비스를 모델로 했으며,[12][13] 원래 야후!에서 빅 데이터 클러스터에서 실행되는 프로세스를 간소화하기 위해 개발되었다. 주키퍼는 분산 빅 데이터 애플리케이션을 배포하는 동안 발생하는 버그를 수정하기 위해 개발되었다.

3. 1. 주키퍼를 사용하는 아파치 프로젝트

3. 2. 전형적인 사용 예

4. 클라이언트 라이브러리

주키퍼 배포판에 포함된 클라이언트 라이브러리 외에도, 아파치 큐레이터(Apache Curator)나 카주(Kazoo)와 같은 여러 타사 라이브러리가 주키퍼 사용을 더 쉽게 만들고, 추가 기능 및 프로그래밍 언어를 지원하는 등 다양한 편의성을 제공한다.

참조

[1] 웹사이트 Apache ZooKeeper - Releases https://zookeeper.ap[...] 2023-02-12
[2] 웹사이트 Apache Zookeeper4 https://zookeeper.ap[...] 2021-01-31
[3] 웹사이트 Index - Apache ZooKeeper - Apache Software Foundation https://cwiki.apache[...] 2016-08-26
[4] 웹사이트 Zookeeper Overview https://cwiki.apache[...]
[5] 웹사이트 ZooKeeper/Powered By http://wiki.apache.o[...] 2012-01-25
[6] 웹사이트 Why Reddit was down on Aug 11 https://www.reddit.c[...] 2016-08-16
[7] 뉴스 5 Big DaaS Challenges and How to Overcome Them {{!}} NetApp Newsroom https://newsroom.net[...] 2017-05-24
[8] 뉴스 Location-Aware Distribution: Configuring servers at scale https://code.fb.com/[...] 2018-07-20
[9] 뉴스 ZooKeeper at Twitter https://blog.twitter[...] 2018-12-08
[10] 웹사이트 SolrCloud https://cwiki.apache[...]
[11] 웹사이트 Apache Pinot: Architecture https://docs.pinot.a[...]
[12] 간행물 The Chubby lock service for loosely-coupled distributed systems https://research.goo[...] 2006
[13] 웹사이트 Paxos Made Live - An Engineering Perspective (2006 Invited Talk) https://research.goo[...] 2020-03-03
[14] 웹사이트 Apache Zookeeper 3.9 Documentation https://zookeeper.ap[...]
[15] 문서 ZooKeeper docs http://hadoop.apache[...]
[16] 문서 ZooKeeper Overview: A Distributed Coordination Service for Distributed Applications http://hadoop.apache[...]
[17] 웹인용 Apache ZooKeeper - Releases https://zookeeper.ap[...] 2023-02-12
[18] 웹인용 ZooKeeper/Powered By http://wiki.apache.o[...] 2014-01-17



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com