블로그 이미지

1. 주키퍼(zookeeper) 란?

2011.01.26 19:59

1. 주키퍼(zookeeper)의 뜻

주키퍼는 현재 apache의 hadoop 프로젝트에서 서브프로젝트로 진행중입니다.(조만간 메인프로젝트 된다고합니다.) 즉 apache에서 현재 존재하는 분산처리 시스템에 프로젝트 이름을 보면 코끼리(hadoop), 거북이(chukwa), 돼지(pig)등과 같이 동물들 이름이 많습니다.
즉 zookeeper는 동물 사육사라는 이름으로 분산처리 시스템에서 일괄적으로 관리해주는 시스템을 뜻합니다.


2. 주키퍼는 왜 필요한가

분산처리 환경에서는 기본적으로 서버가 몇 대에서 수십 대, 수백 대까지도 갈수도 있습니다. 이런 분산처리 환경에서는 예상치 못하는 예외적인 부분이 많이 발생하게 되 는대 주로 네트워크장애, 일부 서비스/기능 예상치 못한 처리로 중지나 장애, 서비스 업그레이드, 서버 확장 등에 문제가 발생할 수 있습니다.
쉽게 이해가 안되시면 프로그램적으로 생각하셔도 됩니다. 예로 싱글 쓰레드만 존재하는 프로그램에서 멀티 쓰레드 프로그램을 하게 될 경우 싱글 쓰레드에서 이상없던 동기성 문제등이 나타나기 시작합니다. 분산처리도 마찬가지입니다. 하나만 처리하던 싱글 서버에서는 문제가 되지 않으나 멀티 서버를 관리를 해야한다면 여러 문제점들이 발생 할 수 있습니다.
 따라서 이런한 점들을 쉽게 해결 할 수 있는 시스템이 바로 주키퍼입니다.


3. 주키퍼의 특징

  1. 네임서비스를 통한 부하분산
    하나의 클라이언트(하나의 서버)만 서비스를 수행하지 않고 알맞게 분산하여 각각의 클라이언트들이 동시 작업할 수 있도록 지원
  2. 분산락이나 동화 문제 해결
    하나의 서버에서 처리된 결과가 또 다른 서버들과 동기화하여 데이터 안정성 보장
  3. 장애상황 판단 및 복구
    액티브(일반서버)서버가 예기치 못한 상황으로 문제가 발생하여 서비스를 지속적으로 처리를 못 할 경우 스탠바이(일반서버)서버가 액티브 서버로 바뀌어서 기존에 액티브 서버가 서비스를 하던 일을 처리하게 된다.
  4. 환경설정 관리
    각각의 다른 서버들을 통합적으로 관리하여 환경설정을 따로 분산하지 않고 주키퍼 자체적으로 관리하게 된다.

신고
  1. 괴남 2013.01.10 19:17 신고  address  modify / delete  reply

    잘 보고 갑니다.
    감사합니다.