BigDATA/Hadoop

[하둡교육 3일차] Zookeeper

태하팍 2013. 6. 5. 10:26
반응형



Zookeeper 필요성

하둡 이전에 이미 있었던 녀석이다.

특징

 1) in-Memory DB(file DB) : 메모리상에 모든걸 다 가지고 있음.(전원이 나가도 무관 - 디스크에 백업은 함, 전원을 키면 디스크에서 읽어들여 다시 메모리에 올림.)

 2) 분산 : 데이터 백업에 대해서 고민 하지 않아도 된다.

             서버 3대에 Zookeeper가 있다면, 분산으로 같은 데이터를 메모리, disk에 가지고 있다.

 

하둡이 왜 Zookeeper가 필요로 했나?

일반적인 분산 시스템 구조 : Master/Slave

Master가 죽으면 다 죽음. HDFS에서 Master가 메타데이터를 가지고 있고, Slave가 데이터를 가지고 있음.


성능을 고려 했을 때, 


(출처 : http://zookeeper.apache.org/doc/trunk/images/zkservice.jpg)


최근 HA방식(마스터 2개) - Active, Stand-By : Active에 부하 심함 

=> Active, Active 방식(데이터 동기화 문제 있음) => Leader/Follower 구조 (리더 권한은 서로 주고 받음)

ex) update시 Follower를 통해 Reader에 요청을 넘기고 Reader가 우선 자기 자신에 파일에 쓰고 나머지도 브로드 캐스팅 해줌. (메모리 저장), done 보고 , Reader가 commit


Zookeeper 데이터 모델

 - 디렉토리만 있음.(데이터를 가지는 디렉토리)

 - 임시노드(세션이 삭제되면 임시노드도 삭제)

 - 시퀀스 노드

 - 고속처리

    초당 : 5만번 변경, 20만번 읽기


Zookeeper API - 참고 : http://zookeeper.apache.org/doc/r3.4.1/api/

 - String create(..) 

 - void delete(..)

   등등


Zookeeper의 Watch 기능 

 클라이언트는 특정 znode에 Watch를 설정 -> znode 변경이 발생하면 클라이언트에게 알려 줌.

 노드 변경 시 Zookeeper가 알려 줌.(push 서비스라 생각하면 됨.)


Zookeeper는 최소 3대로 해야 좋다.

 

출처 : https://t1.daumcdn.net/cfile/tistory/183AD14F4D40129D2C










반응형