web-dev-qa-db-ja.com

zookeeperのzkCli.shコマンドをbashから実行する方法は?

Zookeeperシェル内に行かなくても、bashからls /またはget /のようなzkCli.shコマンドを直接実行することはできますか? Zookeeperバージョン3.4.6-1569965を使用しています。

たとえば、次のようなもの:

$ ./zkCli.sh get /

これは、zookeeperシェルに接続し、そこからget /を実行した後でのみ可能です。

$ ./zkCli.sh
Connecting to localhost:2181
Welcome to ZooKeeper!

WATCHER::

WatchedEvent state:AuthFailed type:None path:null
JLine support is enabled

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] get /
[]
8
rkrishnan

zkCli.shは、3.4.7以降のサポートプロセスコマンドです。 https://issues.Apache.org/jira/browse/ZOOKEEPER-1897

といった:

./zkCli.sh -server xxxxx:2181 get /test

zkcli、zookeeper用のgolang cli https://github.com/go-zkcli/zkcli もシンプルなソリューションです。

zkcli --servers srv-1,srv-2,srv-3 create /demo_only some_value
9
jolestar

内部に直接行かなくてもbashを使用できます。ただし、これの唯一の欠点は、zkコマンド/構文が正しいことを確認する必要があることです。

これはうまくいくでしょう:

#! /bin/bash
zkCli.sh -server localhost:2181 <<EOF
get /testnode
quit
EOF

しかし、これはしません:

#! /bin/bash
zkCli.sh -server localhost:2181 <<EOF
gt /testnode
quit
EOF
4
Michelle Tan

たとえば、次の構文でHBaseマスターアドレスを取得できます。

zkCli.sh -server myserver get /hbase/masterそれが機能しない場合、これは次のようになります:

zkCli.sh -server myserver <<EOF

get /hbase/master

quit

EOF

2
Giova