Учебники

Zookeeper — CLI

Интерфейс командной строки ZooKeeper (CLI) используется для взаимодействия с ансамблем ZooKeeper в целях разработки. Это полезно для отладки и обхода различных опций.

Для выполнения операций ZooKeeper CLI сначала включите сервер ZooKeeper ( «bin / zkServer.sh start» ), а затем клиент ZooKeeper ( «bin / zkCli.sh» ). После запуска клиента вы можете выполнить следующую операцию:

  • Создайте znodes
  • Получить данные
  • Следите за изменениями
  • Установить данные
  • Создавайте детей Знода
  • Список детей знода
  • Проверить состояние
  • Удалить / Удалить узел

Теперь давайте рассмотрим приведенную выше команду одну за другой с примером.

Создать Znodes

Создайте znode с указанным путем. Аргумент flag указывает, будет ли созданный znode эфемерным, постоянным или последовательным. По умолчанию все узлы являются постоянными.

  • Эфемерные узлы (флаг: e) будут автоматически удалены по истечении сеанса или при отключении клиента.

  • Последовательный znode гарантирует, что путь znode будет уникальным.

  • Ансамбль ZooKeeper добавит порядковый номер вместе с 10-значным заполнением к пути znode. Например, znode path / myapp будет преобразован в / myapp0000000001, а следующий порядковый номер будет / myapp0000000002 . Если флаги не указаны, то znode считается постоянным .

Эфемерные узлы (флаг: e) будут автоматически удалены по истечении сеанса или при отключении клиента.

Последовательный znode гарантирует, что путь znode будет уникальным.

Ансамбль ZooKeeper добавит порядковый номер вместе с 10-значным заполнением к пути znode. Например, znode path / myapp будет преобразован в / myapp0000000001, а следующий порядковый номер будет / myapp0000000002 . Если флаги не указаны, то znode считается постоянным .

Синтаксис

create /path /data

Образец

create /FirstZnode Myfirstzookeeper-app

Выход

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

Чтобы создать последовательный znode , добавьте флаг -s, как показано ниже.

Синтаксис

create -s /path /data

Образец

create -s /FirstZnode second-data

Выход

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

Чтобы создать Ephemeral Znode , добавьте флаг -e, как показано ниже.

Синтаксис

create -e /path /data

Образец

create -e /SecondZnode Ephemeral-data

Выход

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

Помните, что когда клиентское соединение потеряно, эфемерный znode будет удален. Вы можете попробовать это, выйдя из ZooKeeper CLI и затем снова открыв CLI.

Получить данные

Он возвращает связанные данные znode и метаданные указанного znode. Вы получите информацию, например, когда данные были изменены в последний раз, где они были изменены, а также информацию о данных. Этот CLI также используется, чтобы назначить часы, чтобы показать уведомление о данных.

Синтаксис

get /path 

Образец

get /FirstZnode

Выход

[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

Чтобы получить доступ к последовательному znode, вы должны ввести полный путь к znode.

Образец

get /FirstZnode0000000023

Выход

[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

Часы

Наблюдения показывают уведомление, когда указанные дочерние данные znode или znode изменяются. Вы можете установить часы только в команде get .

Синтаксис

get /path [watch] 1

Образец

get /FirstZnode 1

Выход

[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

Вывод похож на обычную команду get , но он будет ждать изменений znode в фоновом режиме. <Начните здесь>

Установить данные

Установите данные указанного znode. Когда вы закончите эту операцию установки, вы можете проверить данные с помощью команды get CLI.

Синтаксис

set /path /data

Образец

set /SecondZnode Data-updated

Выход

[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

Если вы определили опцию watch в команде get (как в предыдущей команде), то результат будет похож, как показано ниже —

Выход

[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

Создать Детей / Подзнание

Создание детей похоже на создание новых узлов. Единственное отличие состоит в том, что путь дочернего znode будет также иметь родительский путь.

Синтаксис

create /parent/path/subnode/path /data

Образец

create /FirstZnode/Child1 firstchildren

Выход

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

Список детей

Эта команда используется для отображения и отображения дочерних элементов znode.

Синтаксис

ls /path

Образец

ls /MyFirstZnode

Выход

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

Проверить состояние

Статус описывает метаданные указанного узла. Он содержит такие сведения, как метка времени, номер версии, ACL, длина данных и дочерний узел.

Синтаксис

stat /path

Образец

stat /FirstZnode

Выход

[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

Удалить Znode

Удаляет указанный znode и рекурсивно все его дочерние элементы. Это произойдет, только если такой znode доступен.

Синтаксис

rmr /path

Образец

rmr /FirstZnode

Выход

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

Команда удаления (удаления / пути) аналогична команде удаления , за исключением того, что она работает только на узлах без дочерних элементов.