사육사-CLI
ZooKeeper CLI (명령 줄 인터페이스)는 개발 목적으로 ZooKeeper 앙상블과 상호 작용하는 데 사용됩니다. 다른 옵션으로 디버깅하고 작업하는 데 유용합니다.
ZooKeeper CLI 작업을 수행하려면 먼저 ZooKeeper 서버 ( "bin / zkServer.sh start" )를 켠 다음 ZooKeeper 클라이언트 ( "bin / zkCli.sh" )를 켜십시오 . 클라이언트가 시작되면 다음 작업을 수행 할 수 있습니다.
- znode 생성
- 데이터 가져 오기
- znode에서 변경 사항 확인
- 데이터 설정
- znode의 자식 만들기
- znode의 자식 나열
- 상태 확인
- znode 제거 / 삭제
이제 위의 명령을 예제와 함께 하나씩 살펴 보겠습니다.
Znode 생성
주어진 경로로 znode를 만듭니다. 그만큼flag인수는 생성 된 znode가 임시, 영구 또는 순차적인지 여부를 지정합니다. 기본적으로 모든 znode는 지속적입니다.
Ephemeral znodes (플래그 : e) 세션이 만료되거나 클라이언트 연결이 끊어지면 자동으로 삭제됩니다.
Sequential znodes znode 경로가 고유함을 보장합니다.
ZooKeeper 앙상블은 znode 경로에 10 자리 패딩과 함께 시퀀스 번호를 추가합니다. 예를 들어, znode 경로 / myapp은 / myapp0000000001로 변환되고 다음 시퀀스 번호는 / myapp0000000002가 됩니다. 플래그가 지정되지 않으면 znode는 다음과 같이 간주됩니다.persistent.
통사론
create /path /data
견본
create /FirstZnode “Myfirstzookeeper-app”
산출
[zk: localhost:2181(CONNECTED) 0] create /FirstZnode “Myfirstzookeeper-app”
Created /FirstZnode
만들려면 Sequential znode, 추가 -s flag 아래 그림과 같이.
통사론
create -s /path /data
견본
create -s /FirstZnode second-data
산출
[zk: localhost:2181(CONNECTED) 2] create -s /FirstZnode “second-data”
Created /FirstZnode0000000023
만들려면 Ephemeral Znode, 추가 -e flag 아래 그림과 같이.
통사론
create -e /path /data
견본
create -e /SecondZnode “Ephemeral-data”
산출
[zk: localhost:2181(CONNECTED) 2] create -e /SecondZnode “Ephemeral-data”
Created /SecondZnode
클라이언트 연결이 끊어지면 임시 znode가 삭제됩니다. ZooKeeper CLI를 종료 한 다음 CLI를 다시 열어 사용해 볼 수 있습니다.
데이터 가져 오기
znode의 관련 데이터와 지정된 znode의 메타 데이터를 반환합니다. 데이터가 마지막으로 수정 된시기, 수정 된 위치 및 데이터에 대한 정보와 같은 정보를 얻을 수 있습니다. 이 CLI는 데이터에 대한 알림을 표시하기 위해 감시를 할당하는데도 사용됩니다.
통사론
get /path
견본
get /FirstZnode
산출
[zk: localhost:2181(CONNECTED) 1] get /FirstZnode
“Myfirstzookeeper-app”
cZxid = 0x7f
ctime = Tue Sep 29 16:15:47 IST 2015
mZxid = 0x7f
mtime = Tue Sep 29 16:15:47 IST 2015
pZxid = 0x7f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 22
numChildren = 0
순차 znode에 액세스하려면 znode의 전체 경로를 입력해야합니다.
견본
get /FirstZnode0000000023
산출
[zk: localhost:2181(CONNECTED) 1] get /FirstZnode0000000023
“Second-data”
cZxid = 0x80
ctime = Tue Sep 29 16:25:47 IST 2015
mZxid = 0x80
mtime = Tue Sep 29 16:25:47 IST 2015
pZxid = 0x80
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 13
numChildren = 0
손목 시계
시계는 지정된 znode 또는 znode의 하위 데이터가 변경 될 때 알림을 표시합니다. 당신은 설정할 수 있습니다watch 만 get 명령.
통사론
get /path [watch] 1
견본
get /FirstZnode 1
산출
[zk: localhost:2181(CONNECTED) 1] get /FirstZnode 1
“Myfirstzookeeper-app”
cZxid = 0x7f
ctime = Tue Sep 29 16:15:47 IST 2015
mZxid = 0x7f
mtime = Tue Sep 29 16:15:47 IST 2015
pZxid = 0x7f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 22
numChildren = 0
출력은 정상과 유사합니다. get명령이지만 백그라운드에서 znode 변경을 기다립니다. <여기에서 시작>
데이터 설정
지정된 znode의 데이터를 설정합니다. 이 설정 작업을 마치면 다음을 사용하여 데이터를 확인할 수 있습니다.get CLI 명령.
통사론
set /path /data
견본
set /SecondZnode Data-updated
산출
[zk: localhost:2181(CONNECTED) 1] get /SecondZnode “Data-updated”
cZxid = 0x82
ctime = Tue Sep 29 16:29:50 IST 2015
mZxid = 0x83
mtime = Tue Sep 29 16:29:50 IST 2015
pZxid = 0x82
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x15018b47db00000
dataLength = 14
numChildren = 0
할당 한 경우 watch 옵션 get 명령 (이전 명령에서와 같이), 출력은 다음과 유사합니다-
산출
[zk: localhost:2181(CONNECTED) 1] get /FirstZnode “Mysecondzookeeper-app”
WATCHER: :
WatchedEvent state:SyncConnected type:NodeDataChanged path:/FirstZnode
cZxid = 0x7f
ctime = Tue Sep 29 16:15:47 IST 2015
mZxid = 0x84
mtime = Tue Sep 29 17:14:47 IST 2015
pZxid = 0x7f
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 23
numChildren = 0
하위 / 하위 znode 만들기
자식을 만드는 것은 새 znode를 만드는 것과 비슷합니다. 유일한 차이점은 자식 znode의 경로에도 부모 경로가 있다는 것입니다.
통사론
create /parent/path/subnode/path /data
견본
create /FirstZnode/Child1 firstchildren
산출
[zk: localhost:2181(CONNECTED) 16] create /FirstZnode/Child1 “firstchildren”
created /FirstZnode/Child1
[zk: localhost:2181(CONNECTED) 17] create /FirstZnode/Child2 “secondchildren”
created /FirstZnode/Child2
자녀 나열
이 명령은 다음을 나열하고 표시하는 데 사용됩니다. children znode의.
통사론
ls /path
견본
ls /MyFirstZnode
산출
[zk: localhost:2181(CONNECTED) 2] ls /MyFirstZnode
[mysecondsubnode, myfirstsubnode]
상태 확인
Status지정된 znode의 메타 데이터를 설명합니다. 여기에는 타임 스탬프, 버전 번호, ACL, 데이터 길이 및 하위 znode와 같은 세부 정보가 포함됩니다.
통사론
stat /path
견본
stat /FirstZnode
산출
[zk: localhost:2181(CONNECTED) 1] stat /FirstZnode
cZxid = 0x7f
ctime = Tue Sep 29 16:15:47 IST 2015
mZxid = 0x7f
mtime = Tue Sep 29 17:14:24 IST 2015
pZxid = 0x7f
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 23
numChildren = 0
Znode 제거
지정된 znode 및 모든 하위 항목을 재귀 적으로 제거합니다. 이는 그러한 znode를 사용할 수있는 경우에만 발생합니다.
통사론
rmr /path
견본
rmr /FirstZnode
산출
[zk: localhost:2181(CONNECTED) 10] rmr /FirstZnode
[zk: localhost:2181(CONNECTED) 11] get /FirstZnode
Node does not exist: /FirstZnode
지우다 (delete /path) 명령은 다음과 유사합니다. remove 명령을 제외하고는 자식이없는 znode에서만 작동합니다.