티스토리 뷰
Developer
[zookeeper] Coordinating Distributed Applications with ZooKeeper
rocksea 2013. 7. 22. 02:17Coordinating Distributed Applications with ZooKeeper.
zookeeper란 분산어플리케이션을 구성하기위해 동일하게 분산처리를 담당하는 서비스 이다.
zookeeper가 처음나왔을때 사육사? 왜 사육사일까 라는 생각을 했었다. 생각해보니 Apache재단의 분산처리 오픈소스들이 대
부분 동물 ( Hadoop, hive, pig 등등 )이기때문이어서 그런게 아닌가 했는데 이생각이 맞다고 한다.
zookeeper 설계목표는 아래의 그림과 같다.
[ 그림 1 ] zookeeper design goals
[ 그림2 ] zookeeper node 구조
그래서 분산클러스터를 구성하기 위한 설치 및 간단한 성능 점검을 해보기로 한다.
테스트 환경
OS : Ubuntu 12.04
step1. zookeeper installation
$ sudo apt-get install zookeeper
step2. zookeeper server & client start
$ cd /usr/share/zookeeper/bin
$ sudo ./zkServer.sh start
$ sudo ./zkCli.sh -server 127.0.0.1:2181
step3. zookeeper znode생성
[zk: 127.0.0.1:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: 127.0.0.1:2181(CONNECTED) 1] create /zk_test my_data
Created /zk_test
[zk: 127.0.0.1:2181(CONNECTED) 2] ls /
[zookeeper, zk_test]
step4. znode 관련데이터 확인
get명령을 통해 zk_test의 znode 관련데이터를 확인한다.
[zk: 127.0.0.1:2181(CONNECTED) 3] get /zk_test
my_data
cZxid = 0xc
ctime = Tue Jul 09 00:56:16 KST 2013
mZxid = 0xc
mtime = Tue Jul 09 00:56:16 KST 2013
pZxid = 0xc
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
step5. zk_test 데이터 변경
set명령을 이용하여 zk_test데이터를 변경한다.
[zk: 127.0.0.1:2181(CONNECTED) 4] set /zk_test junk
cZxid = 0xc
ctime = Tue Jul 09 00:56:16 KST 2013
mZxid = 0xd
mtime = Tue Jul 09 01:01:21 KST 2013
pZxid = 0xc
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0
[zk: 127.0.0.1:2181(CONNECTED) 5] get /zk_test
junk
cZxid = 0xc
ctime = Tue Jul 09 00:56:16 KST 2013
mZxid = 0xd
mtime = Tue Jul 09 01:01:21 KST 2013
pZxid = 0xc
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0
step6. zk_test node 삭제
[zk: 127.0.0.1:2181(CONNECTED) 6] delete /zk_test
[zk: 127.0.0.1:2181(CONNECTED) 7] ls /
[zookeeper]
다음시간에는 실전으로 들어가 직접 redis failover를 구현해 보도록 하겠습니다.
.by rocksea
'Developer' 카테고리의 다른 글
[nginx] 자동 urldecoding문제 (0) | 2013.08.22 |
---|---|
[chatting] redis pub/sub + socket.io를 이용한 chatting server & client (7) | 2013.08.09 |
[linux] access log 접속아이피 분석 (0) | 2013.07.18 |
[gitlab] ruby version update ( gitlab start syntax error) (0) | 2013.07.15 |
[nodejs] ejs에서 nodejs function 사용 (5) | 2013.07.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- k8s
- 다낭
- redis
- 영문법
- JBOSS
- PostgreSQL
- 스페인 여행
- 여행
- hdfs
- maven
- it
- 영작
- 비지니스 영어
- NGINX
- 해외여행
- 조동사
- Python
- memcached
- Business English
- 가정법
- 베트남
- hadoop
- 비교구문
- nodejs
- Python Django
- mongoDB
- AWS
- ubuntu
- 도덕경
- 대명사 구문
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 | 31 |
글 보관함