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.