ZooKeeper 옵저버와 CLI
· Version : Zookeeper
주키퍼는 리더가 모든 서버에 쓰기 요청을 보내고 과반수 이상의 응답을 받은 후 처리한다. 주키퍼 서버에 연결되는 클라이언트수가 많으면, 서버를 확장하여 읽기에 대한 부하분산이 가능하다. 하지만 서버가 늘어날 경우, 쓰기 연산 발생시 전체 서버에 대해서 응답을 기다려야 하기 때문에, 그만큼 성능 저하가 발생할 수 있다. 이러한 문제를 해결하기위해 옵저버 개념이 도입되었다.
옵저버는 투표에 참여하지 않는 서버를 뜻한다. 리더는 쓰기 요청을 받고 각 서버로 쓰기에 대한 응답을 보내고 받을때, 옵저버 서버에는 보내지 않는다. 그리고 일반 서버의 투표에 의한 정상 처리인 경우, 쓰기 요청을 옵저버로 보내 옵저버의 로컬 메모리에 데이터를 기록한다. 서버가 옵저버로 동작하게 하려면 옵저버 서버의 환경설정에 아래와 같은 값을 입력한다.
peerType=observer |
그리고 모든 서버의 환경 설정에 옵저버 서버의 정보를 추가하여 투표 요청을 하지 않도록 한다. 아래 예시는 192.168.0.2 서버가 observer 서버라는 정보를 환경 설정에 등록한 것이다.
Server.1:192.168.0.2:2181:3181:observer |
주키퍼는 CLI(Command Lind Interface)기반의 쉘 프로그램을 제공한다. 클라이언트 쉘을 실행하려면 아래와 같은 명령을 입력 한다.
bin.zkCli.sh ?server 127.0.0.1:2181 |
아래표는 CLI 명령어와 설명이다.
command |
Description |
connect host:port |
주키퍼 서버에 접속한다. |
get path |
노드에 저장된 데이터를 보여준다. |
ls path |
노드의 자식 노드 목록을 조회한다. |
set path data |
노드의 데이터를 수정한다. |
delquota [-n|-b] path |
노드의 사용 용량 설정 정보를 삭제 한다. |
quit |
쉘을 종료 한다. |
printwatches on|off |
와처에서 받은 이벤트 정보를 콘솔에 출력할지 여부를 설정한다. |
create [-s][-e] path data acl |
노드를 생성한다. -s옵션은 순차노드를 생성, -e는 임시노드를 생성한다. |
stat path |
패스의 상태 정보를 조회한다. |
close |
주키퍼 접속을 종료한다. |
ls2 path |
ls와 stat명령을 동시에 수행시킨 내용을 보여준다. |
history |
수행한 명령어 목록을 보여준다. |
listquota path |
패스에 설정된 용량 설정 정보를 보여준다. |
setAcl path acl |
패스에 권한을 설정한다. |
getAcl path |
패스의 ACL 목록을 조회한다. |
sync path |
패스에 sync 명령을 보낸다. |
redo cmdno |
쉘에서 이전에 실행했던 명령을 다시 실행한다. |
addauth scheme auth |
현재 오픈되어 있는 쉘의 주키퍼 연결에 인증 정보를 추가한다. |
delete path |
패스를 삭제한다. |
2020-05-18 / Sungwook Kang / http://sungwookkang.com
Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, 주키퍼, Zookeeper, 분산 코디네이션
'SW Engineering > Hadoop' 카테고리의 다른 글
HDFS 데이터 저장소에는 RAID구성이 필요할까 (0) | 2020.06.08 |
---|---|
Hive에서 하둡(dfs)명령 실행 (0) | 2020.05.19 |
Hive에서 쉘 명령 실행 (0) | 2020.05.18 |
ZooKeeper 클라이언트 요청 처리 (0) | 2020.05.18 |
ZooKeeper 멀티 서버 구성 (0) | 2020.05.17 |