Gardien de zoo - CLI

L'interface de ligne de commande (CLI) de ZooKeeper est utilisée pour interagir avec l'ensemble ZooKeeper à des fins de développement. C'est utile pour le débogage et travailler avec différentes options.

Pour effectuer des opérations CLI ZooKeeper, allumez d'abord votre serveur ZooKeeper ( «bin / zkServer.sh start» ), puis le client ZooKeeper ( «bin / zkCli.sh» ). Une fois le client démarré, vous pouvez effectuer l'opération suivante -

  • Créer des znodes
  • Obtenez des données
  • Surveillez znode pour les changements
  • Définir les données
  • Créer des enfants d'un znode
  • Lister les enfants d'un znode
  • Vérifier l'état
  • Supprimer / Supprimer un znode

Voyons maintenant la commande ci-dessus une par une avec un exemple.

Créer des Znodes

Créez un znode avec le chemin donné. leflagL'argument spécifie si le znode créé sera éphémère, persistant ou séquentiel. Par défaut, tous les znodes sont persistants.

  • Ephemeral znodes (indicateur: e) sera automatiquement supprimé lorsqu'une session expire ou lorsque le client se déconnecte.

  • Sequential znodes garantit que le chemin du znode sera unique.

  • L'ensemble ZooKeeper ajoutera un numéro de séquence avec un remplissage de 10 chiffres au chemin znode. Par exemple, le chemin znode / myapp sera converti en / myapp0000000001 et le numéro de séquence suivant sera / myapp0000000002 . Si aucun indicateur n'est spécifié, le znode est considéré commepersistent.

Syntaxe

create /path /data

Échantillon

create /FirstZnode “Myfirstzookeeper-app”

Production

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

Créer un Sequential znode, ajouter -s flag comme indiqué ci-dessous.

Syntaxe

create -s /path /data

Échantillon

create -s /FirstZnode second-data

Production

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

Pour créer un Ephemeral Znode, ajouter -e flag comme indiqué ci-dessous.

Syntaxe

create -e /path /data

Échantillon

create -e /SecondZnode “Ephemeral-data”

Production

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

N'oubliez pas que lorsqu'une connexion client est perdue, le znode éphémère sera supprimé. Vous pouvez l'essayer en quittant la CLI ZooKeeper, puis en rouvrant la CLI.

Obtenir des données

Il renvoie les données associées du znode et les métadonnées du znode spécifié. Vous obtiendrez des informations telles que la date de la dernière modification des données, l'endroit où elles ont été modifiées et des informations sur les données. Cette CLI est également utilisée pour attribuer des montres pour afficher une notification sur les données.

Syntaxe

get /path

Échantillon

get /FirstZnode

Production

[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

Pour accéder à un znode séquentiel, vous devez entrer le chemin complet du znode.

Échantillon

get /FirstZnode0000000023

Production

[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

Regarder

Les montres affichent une notification lorsque les données enfants du znode ou du znode spécifié changent. Vous pouvez définir unwatch seulement dans get commander.

Syntaxe

get /path [watch] 1

Échantillon

get /FirstZnode 1

Production

[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 sortie est similaire à la normale getcommande, mais il attendra les changements de znode en arrière-plan. <Commencez ici>

Définir les données

Définissez les données du znode spécifié. Une fois que vous avez terminé cette opération de réglage, vous pouvez vérifier les données à l'aide duget Commande CLI.

Syntaxe

set /path /data

Échantillon

set /SecondZnode Data-updated

Production

[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 vous avez attribué watch option dans get commande (comme dans la commande précédente), la sortie sera similaire comme indiqué ci-dessous -

Production

[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

Créer des enfants / sous-znode

La création d'enfants est similaire à la création de nouveaux znodes. La seule différence est que le chemin du znode enfant aura également le chemin parent.

Syntaxe

create /parent/path/subnode/path /data

Échantillon

create /FirstZnode/Child1 firstchildren

Production

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

Liste des enfants

Cette commande permet de lister et d'afficher les children d'un znode.

Syntaxe

ls /path

Échantillon

ls /MyFirstZnode

Production

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

Vérifier l'état

Statusdécrit les métadonnées d'un znode spécifié. Il contient des détails tels que l'horodatage, le numéro de version, l'ACL, la longueur des données et le znode des enfants.

Syntaxe

stat /path

Échantillon

stat /FirstZnode

Production

[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

Supprimer un Znode

Supprime un znode spécifié et de manière récursive tous ses enfants. Cela n'arriverait que si un tel znode est disponible.

Syntaxe

rmr /path

Échantillon

rmr /FirstZnode

Production

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

Effacer (delete /path) la commande est similaire à remove commande, sauf le fait qu'elle ne fonctionne que sur les znodes sans enfants.