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.