Zookeeper - CLI

L'interfaccia della riga di comando (CLI) di ZooKeeper viene utilizzata per interagire con l'insieme ZooKeeper a scopo di sviluppo. È utile per eseguire il debug e lavorare con diverse opzioni.

Per eseguire le operazioni CLI di ZooKeeper, prima accendi il server ZooKeeper ( "bin / zkServer.sh start" ) e poi il client ZooKeeper ( "bin / zkCli.sh" ). Una volta avviato il client, è possibile eseguire la seguente operazione:

  • Crea znodes
  • Ottieni dati
  • Guarda znode per i cambiamenti
  • Imposta dati
  • Crea figli di uno znode
  • Elenca i figli di uno znode
  • Controllare lo stato
  • Rimuovi / Elimina uno znode

Ora vediamo i comandi sopra uno per uno con un esempio.

Crea Znodes

Crea uno znode con il percorso indicato. Ilflagargomento specifica se lo znode creato sarà temporaneo, persistente o sequenziale. Per impostazione predefinita, tutti gli znode sono persistenti.

  • Ephemeral znodes (flag: e) verrà automaticamente cancellato quando una sessione scade o quando il client si disconnette.

  • Sequential znodes garantire che il percorso znode sarà unico.

  • L'ensemble ZooKeeper aggiungerà il numero di sequenza insieme a 10 cifre al percorso znode. Ad esempio, il percorso znode / miaapp verrà convertito in / miaapp0000000001 e il numero di sequenza successivo sarà / miaapp0000000002 . Se non vengono specificati flag, znode viene considerato comepersistent.

Sintassi

create /path /data

Campione

create /FirstZnode “Myfirstzookeeper-app”

Produzione

[zk: localhost:2181(CONNECTED) 0] create /FirstZnode “Myfirstzookeeper-app”
Created /FirstZnode

Per creare un file Sequential znode, Inserisci -s flag come mostrato di seguito.

Sintassi

create -s /path /data

Campione

create -s /FirstZnode second-data

Produzione

[zk: localhost:2181(CONNECTED) 2] create -s /FirstZnode “second-data”
Created /FirstZnode0000000023

Per creare un file Ephemeral Znode, Inserisci -e flag come mostrato di seguito.

Sintassi

create -e /path /data

Campione

create -e /SecondZnode “Ephemeral-data”

Produzione

[zk: localhost:2181(CONNECTED) 2] create -e /SecondZnode “Ephemeral-data”
Created /SecondZnode

Ricorda che quando una connessione client viene persa, lo znode temporaneo verrà eliminato. Puoi provarlo chiudendo la CLI di ZooKeeper e quindi riaprendo la CLI.

Ottieni dati

Restituisce i dati associati dello znode e i metadati dello znode specificato. Riceverai informazioni come quando i dati sono stati modificati l'ultima volta, dove sono stati modificati e informazioni sui dati. Questa CLI viene utilizzata anche per assegnare orologi per mostrare la notifica sui dati.

Sintassi

get /path

Campione

get /FirstZnode

Produzione

[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

Per accedere a uno znode sequenziale, è necessario immettere il percorso completo dello znode.

Campione

get /FirstZnode0000000023

Produzione

[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

Orologio

Gli orologi mostrano una notifica quando i dati secondari di znode o znode specificati cambiano. Puoi impostare un filewatch solo in get comando.

Sintassi

get /path [watch] 1

Campione

get /FirstZnode 1

Produzione

[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

L'output è simile al normale getcomando, ma attenderà i cambiamenti di znode in background. <Inizia qui>

Imposta dati

Imposta i dati dello znode specificato. Una volta terminata questa operazione di impostazione, è possibile controllare i dati utilizzando il fileget Comando CLI.

Sintassi

set /path /data

Campione

set /SecondZnode Data-updated

Produzione

[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

Se hai assegnato watch opzione in get comando (come nel comando precedente), l'output sarà simile a quello mostrato di seguito -

Produzione

[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

Crea figli / sottoznodo

La creazione di figli è simile alla creazione di nuovi znodi. L'unica differenza è che anche il percorso del figlio znode avrà il percorso genitore.

Sintassi

create /parent/path/subnode/path /data

Campione

create /FirstZnode/Child1 firstchildren

Produzione

[zk: localhost:2181(CONNECTED) 16] create /FirstZnode/Child1 “firstchildren”
created /FirstZnode/Child1
[zk: localhost:2181(CONNECTED) 17] create /FirstZnode/Child2 “secondchildren”
created /FirstZnode/Child2

Elenco bambini

Questo comando viene utilizzato per elencare e visualizzare il file children di uno znode.

Sintassi

ls /path

Campione

ls /MyFirstZnode

Produzione

[zk: localhost:2181(CONNECTED) 2] ls /MyFirstZnode
[mysecondsubnode, myfirstsubnode]

Controllare lo stato

Statusdescrive i metadati di uno znode specificato. Contiene dettagli come Timestamp, Numero di versione, ACL, Lunghezza dati e Znode figlio.

Sintassi

stat /path

Campione

stat /FirstZnode

Produzione

[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

Rimuovere uno Znode

Rimuove uno znode specificato e ricorsivamente tutti i suoi figli. Ciò accadrebbe solo se tale znode fosse disponibile.

Sintassi

rmr /path

Campione

rmr /FirstZnode

Produzione

[zk: localhost:2181(CONNECTED) 10] rmr /FirstZnode
[zk: localhost:2181(CONNECTED) 11] get /FirstZnode
Node does not exist: /FirstZnode

Elimina (delete /path) comando è simile a remove comando, tranne per il fatto che funziona solo su znodes senza figli.