Zookeeper - CLI

La interfaz de línea de comandos (CLI) de ZooKeeper se utiliza para interactuar con el conjunto de ZooKeeper con fines de desarrollo. Es útil para depurar y trabajar con diferentes opciones.

Para realizar operaciones CLI de ZooKeeper, primero encienda su servidor ZooKeeper ( “bin / zkServer.sh start” ) y luego, el cliente ZooKeeper ( “bin / zkCli.sh” ). Una vez que el cliente se inicia, puede realizar la siguiente operación:

  • Crear znodes
  • Obtener datos
  • Observe los cambios de znode
  • Establecer datos
  • Crear hijos de un znode
  • Lista de hijos de un znode
  • Comprobar estado
  • Eliminar / Eliminar un znode

Ahora veamos el comando anterior uno por uno con un ejemplo.

Crear Znodes

Crea un znode con la ruta dada. losflagEl argumento especifica si el znode creado será efímero, persistente o secuencial. De forma predeterminada, todos los znodes son persistentes.

  • Ephemeral znodes (bandera: e) se eliminará automáticamente cuando expire una sesión o cuando el cliente se desconecte.

  • Sequential znodes garantía de que la ruta de znode será única.

  • El conjunto ZooKeeper agregará un número de secuencia junto con un relleno de 10 dígitos a la ruta de znode. Por ejemplo, la ruta de znode / myapp se convertirá a / myapp0000000001 y el siguiente número de secuencia será / myapp0000000002 . Si no se especifican banderas, entonces el znode se considera comopersistent.

Sintaxis

create /path /data

Muestra

create /FirstZnode “Myfirstzookeeper-app”

Salida

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

Para crear un Sequential znode, agregar -s flag Como se muestra abajo.

Sintaxis

create -s /path /data

Muestra

create -s /FirstZnode second-data

Salida

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

Para crear un Ephemeral Znode, agregar -e flag Como se muestra abajo.

Sintaxis

create -e /path /data

Muestra

create -e /SecondZnode “Ephemeral-data”

Salida

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

Recuerde que cuando se pierde la conexión de un cliente, el znode efímero se eliminará. Puede intentarlo saliendo de la CLI de ZooKeeper y luego volviendo a abrir la CLI.

Obtener datos

Devuelve los datos asociados del znode y los metadatos del znode especificado. Obtendrá información como cuándo se modificaron por última vez los datos, dónde se modificaron e información sobre los datos. Esta CLI también se utiliza para asignar relojes para mostrar notificaciones sobre los datos.

Sintaxis

get /path

Muestra

get /FirstZnode

Salida

[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

Para acceder a un znode secuencial, debe ingresar la ruta completa del znode.

Muestra

get /FirstZnode0000000023

Salida

[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

Reloj

Los relojes muestran una notificación cuando los datos secundarios de znode o znode especificados cambian. Puede establecer unwatch solo en get mando.

Sintaxis

get /path [watch] 1

Muestra

get /FirstZnode 1

Salida

[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

La salida es similar a la normal. getcomando, pero esperará los cambios de znode en segundo plano. <Empiece aquí>

Establecer datos

Configure los datos del znode especificado. Una vez que termine esta operación configurada, puede verificar los datos usando elget Comando CLI.

Sintaxis

set /path /data

Muestra

set /SecondZnode Data-updated

Salida

[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

Si asignaste watch opción en get comando (como en el comando anterior), entonces la salida será similar a la que se muestra a continuación:

Salida

[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

Crear hijos / Sub-znode

Crear hijos es similar a crear nuevos znodes. La única diferencia es que la ruta del znode secundario también tendrá la ruta principal.

Sintaxis

create /parent/path/subnode/path /data

Muestra

create /FirstZnode/Child1 firstchildren

Salida

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

Lista de niños

Este comando se usa para listar y mostrar children de un znode.

Sintaxis

ls /path

Muestra

ls /MyFirstZnode

Salida

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

Comprobar estado

Statusdescribe los metadatos de un znode especificado. Contiene detalles como marca de tiempo, número de versión, ACL, longitud de los datos y znode secundario.

Sintaxis

stat /path

Muestra

stat /FirstZnode

Salida

[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

Eliminar un Znode

Elimina un znode especificado y de forma recursiva todos sus elementos secundarios. Esto sucedería solo si tal znode está disponible.

Sintaxis

rmr /path

Muestra

rmr /FirstZnode

Salida

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

Eliminar (delete /path) comando es similar a remove comando, excepto el hecho de que solo funciona en znodes sin hijos.