ZooKeeper 实用程序

提供了一个 ZooKeeper 命令行界面 (CLI) 脚本,可让你直接与存储在 ZooKeeper 中的 Solr 配置文件进行交互。

虽然 Solr 的管理界面包括专门用于 SolrCloud 集群状态的页面,但它不允许你下载或修改相关的配置文件。

有关使用管理界面屏幕的更多信息,请参见部分 云屏幕

server/scripts/cloud-scripts 中的 ZooKeeper CLI 脚本允许你将配置信息上传到 ZooKeeper。它还提供了一些其他命令,让你可以将集合集链接到集合、创建 ZooKeeper 路径或清除它们,以及将配置从 ZooKeeper 下载到本地文件系统。

zkCli.sh 脚本提供的许多功能也由 Solr 控制脚本 提供,它可能更熟悉,因为启动脚本 ZooKeeper 维护命令与 Unix 命令非常相似。

Solr 的 zkcli.sh 与 ZooKeeper 的 zkCli.sh

Solr 提供的 zkcli.shZooKeeper 发行版中包含的 zkCli.sh 不同。

ZooKeeper 的 zkCli.sh 为操作 ZooKeeper 中的数据提供了一个完全通用的、与应用程序无关的 shell。本部分讨论的 Solr 的 zkcli.sh 专门用于 Solr,并且具有用于处理 ZooKeeper 中的 Solr 数据的特定命令行参数。

使用 Solr 的 ZooKeeper CLI

使用 help 选项从脚本本身获取可用命令的列表,如 ./server/scripts/cloud-scripts/zkcli.sh help

zkcli.sh(用于 Unix 环境)和 zkcli.bat(用于 Windows 环境)都支持以下命令行选项

-cmd <arg>

要执行的 CLI 命令。此参数是必需的。支持以下命令

  • bootstrap

  • upconfig

  • downconfig

  • linkconfig

  • makepath

  • getgetfile

  • putputfile

  • clear

  • list

  • ls

  • clusterprop

-z-zkhost <locations>

ZooKeeper 主机地址。此参数对于所有 CLI 命令都是必需的

-c-collection <name>

对于 linkconfig:集合的名称。

-d-confdir <path>

对于 upconfig:配置文件目录。对于 downconfig:从 ZooKeeper 提取的文件的目标位置

-h-help

显示帮助文本。

-n-confname <arg>

对于 upconfiglinkconfigdownconfig:配置集的名称。

-r-runzk <port>

通过传递 Solr 运行端口在内部运行 ZooKeeper;仅适用于一台机器上的集群。

-s-solrhome <path>

对于 bootstrap 或使用 -runzk 时:必需的 solrhome 位置。

-name <name>

对于 clusterprop必需的集群属性名称。

-val <value>

对于 clusterprop:集群属性值。如果未指定,将使用null 作为值。

短形式参数选项可以使用单破折号指定(例如,-c mycollection)。

长形式参数选项可以使用单破折号(例如,-collection mycollection)或双破折号(例如,--collection mycollection)指定

ZooKeeper CLI 示例

下面是一些使用 zkcli.sh CLI 的示例,假设您已经启动了 SolrCloud 示例(bin/solr -e cloud -noprompt

如果您使用的是 Windows 机器,只需在这些示例中将 zkcli.sh 替换为 zkcli.bat

上传配置目录

./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:9983 -cmd upconfig -confname my_new_config -confdir server/solr/configsets/_default/conf

从现有的 solr.home 引导 ZooKeeper

./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:2181 -cmd bootstrap -solrhome /var/solr/data
使用 chroot 引导

-zkhost 参数中使用 ZooKeeper chroot 的 boostrap 命令(例如,-zkhost 127.0.0.1:2181/solr)将在上传配置之前自动创建 chroot 路径。

将任意数据放入新的 ZooKeeper 文件

./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:9983 -cmd put /my_zk_file.txt 'some data'

将本地文件放入新的 ZooKeeper 文件

./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:9983 -cmd putfile /my_zk_file.txt /tmp/my_local_file.txt
./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:9983 -cmd linkconfig -collection gettingstarted -confname my_new_config

创建新 ZooKeeper 路径

在第一次集群启动前,这对于在 ZooKeeper 中创建 chroot 路径很有用。

./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:2181 -cmd makepath /solr

设置集群属性

此命令将在 clusterprops.json 中添加或修改单个集群属性。使用此命令代替通常的 getfile → edit → putfile 循环。

与集合 API 上的 CLUSTERPROP 命令不同,此命令不需要正在运行的 Solr 集群。

./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:2181 -cmd clusterprop -name urlScheme -val https