사육사-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의 하위 데이터가 변경 될 때 알림을 표시합니다. 당신은 설정할 수 있습니다watchget 명령.

통사론

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에서만 작동합니다.