用于通过原生协议与 clickhouse-keeper 交互的客户端应用程序。
选项
-q QUERY,--query=QUERY— 要执行的查询。如果未传入此参数,clickhouse-keeper-client将以交互模式启动。-h HOST,--host=HOST— 服务器主机。默认值:localhost。-p N,--port=N— 服务器端口。默认值:9181-c FILE_PATH,--config-file=FILE_PATH— 设置配置文件路径以获取连接字符串。默认值:config.xml。--password=PASSWORD— 用于身份验证的密码。也可以通过CLICKHOUSE_KEEPER_PASSWORD环境变量设置,或在 XML 配置文件的<zookeeper><password>下设置。--identity=IDENTITY— 用于digest身份验证方案的身份标识。也可以通过CLICKHOUSE_KEEPER_IDENTITY环境变量设置,或在 XML 配置文件的<zookeeper><identity>下设置。--connection-timeout=TIMEOUT— 设置连接超时时间 (秒) 。默认值:10s。--session-timeout=TIMEOUT— 设置会话超时时间 (秒) 。默认值:10s。--operation-timeout=TIMEOUT— 设置操作超时时间 (秒) 。默认值:10s。--history-file=FILE_PATH— 设置历史记录文件路径。默认值:~/.keeper-client-history。--log-level=LEVEL— 设置日志级别。默认值:information。--no-confirmation— 如果设置此项,执行某些命令时将不再要求确认。对于交互模式,默认值为false;对于查询,默认值为true--help— 显示帮助信息。
环境变量
CLICKHOUSE_KEEPER_PASSWORD— 如果命令行中未提供--password,则将其用作默认密码。CLICKHOUSE_KEEPER_IDENTITY— 如果命令行中未提供--identity,则将其用作默认身份标识。
身份验证
连接到需要身份验证的 Keeper server 时,密码会按以下优先级顺序确定 (先匹配者生效) :
--password命令行参数CLICKHOUSE_KEEPER_PASSWORD环境变量- 由
--config-file指定的 XML 配置文件中的<zookeeper><password>
同样的优先级也适用于 --identity / CLICKHOUSE_KEEPER_IDENTITY / <zookeeper><identity>。
包含身份验证设置的 XML 配置文件示例:
<clickhouse>
<zookeeper>
<password>secret</password>
<node index="1">
<host>localhost</host>
<port>9181</port>
</node>
</zookeeper>
</clickhouse>示例
./clickhouse-keeper-client -h localhost -p 9181 --connection-timeout 30 --session-timeout 30 --operation-timeout 30
Connected to ZooKeeper at [::1]:9181 with session_id 137
/ :) ls
keeper foo bar
/ :) cd 'keeper'
/keeper :) ls
api_version
/keeper :) cd 'api_version'
/keeper/api_version :) ls
/keeper/api_version :) cd 'xyz'
Path /keeper/api_version/xyz does not exist
/keeper/api_version :) cd ../../
/ :) ls
keeper foo bar
/ :) get 'keeper/api_version'
2命令
ls '[path]' [watch_id]– 列出给定路径下的节点 (默认:cwd) 。可选设置一个由watch_id标识的子节点 watchcd '[path]'– 更改工作路径 (默认.)cp '<src>' '<dest>'– 将 'src' 节点复制到 'dest' 路径cpr '<src>' '<dest>'– 将 'src' 节点子树复制到 'dest' 路径mv '<src>' '<dest>'– 将 'src' 节点移动到 'dest' 路径mvr '<src>' '<dest>'– 将 'src' 节点子树移动到 'dest' 路径exists '<path>' [watch_id]– 如果节点存在则返回1,否则返回0。可选设置一个由watch_id标识的 watchset '<path>' <value> [version]– 更新节点的值。仅当 version 匹配时才会更新 (默认:-1)create '<path>' <value> [mode]– 创建新节点并设置指定值touch '<path>'– 创建新节点,并将值设为空字符串。如果节点已存在,不会抛出异常get '<path>' [watch_id]– 返回节点的值。可选设置一个由watch_id标识的数据 watchwatch <watch_id> [timeout_seconds]– 等待由watch_id标识的 watch 事件,并打印事件类型和路径。如果指定了timeout_seconds,则在超时后返回 errorrm '<path>' [version]– 仅当 version 匹配时才删除节点 (默认:-1)rmr '<path>' [limit]– 如果子树大小小于限制值,则递归删除该路径。需要确认 (默认 limit = 100)flwc <command>– 执行四字命令help– 打印此消息get_direct_children_number '[path]'– 获取指定路径下直接子节点的数量get_all_children_number '[path]'– 获取指定路径下所有子节点的数量get_stat '[path]'– 返回节点的 stat (默认.)find_super_nodes <threshold> '[path]'– 查找给定路径下子节点数量大于某个 threshold 的节点 (默认.)delete_stale_backups– 删除现已失效的、用于 backups 的 ClickHouse 节点find_big_family [path] [n]– 返回子树中 family 最大的前 n 个节点 (默认 path =.,n = 10)sync '<path>'– 在进程与 leader 之间同步节点reconfig <add|remove|set> "<arg>" [version]– 重新配置 Keeper cluster。参见 /docs/en/guides/sre/keeper/clickhouse-keeper#reconfiguration