Solr命令行实用程序
ZooKeeper的命令行界面(CLI)脚本可用于直接与存储在ZooKeeper中的Solr配置文件进行交互。
虽然Solr的管理用户界面包括专用于SolrCloud群集状态的页面,但它不允许您下载或修改相关的配置文件。
有关使用管理UI界面的更多信息, 请参阅Cloud Screens部分。
在server/scripts/cloud-scripts中找到的ZooKeeper CLI脚本允许您将配置信息上传到ZooKeeper,方法与参数引用中的示例中所示相同。它还提供了一些其他命令,使您可以将集合集链接到集合、创建ZooKeeper路径或清除它们,并将配置从ZooKeeper下载到本地文件系统。
zkCli.sh脚本提供的许多功能也由Solr控制脚本提供,可能更为熟悉,因为启动脚本ZooKeeper维护命令与Unix命令非常相似。
Solr的zkcli.sh 与 ZooKeeper的zkCli.sh 对比
由 Solr 提供的zkcli.sh
与包含在ZooKeeper中的zkcli.sh
是不一样的。
ZooKeeper的zkcli.sh
提供了一个完全通用的、应用程序不可知的 shell,用于操作ZooKeeper的数据。本节中讨论的Solr的zkcli.sh
是特定于 solr 的,并且具有特定于处理ZooKeeper中的Solr数据的命令行参数。
使用Solr的ZooKeeper CLI
使用该help选项从脚本本身获取可用命令的列表,如./server/scripts/cloud-scrips/zkcli.sh help。
这两个zkcli.sh(Unix环境下)和zkcli.bat(用于Windows环境)支持以下命令行选项:
- -cmd <arg>
要执行的CLI命令。该参数是强制性的。支持以下命令:
-
bootstrap
-
upconfig
-
downconfig
-
linkconfig
-
makepath
-
get
和getfile
-
put
和putfile
-
clear
-
list
-
ls
-
clusterprop
-
- -z 或者 -zkhost <locations>
ZooKeeper主机地址。所有CLI命令都必须使用此参数。
- -c 或者 -collection <name>
对于
linkconfig
:集合的名称。 - -d 或者 -confdir <path>
对于
upconfig
:配置文件的目录。对于downconfig:从ZooKeeper提取的文件的目的地 - -h 或者 -help
显示帮助文字。
- -n 或者 -confname <arg>
对于
upconfig
,linkconfig
,downconfig
:配置集的名称。 - -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.shCLI的例子,假设你已经启动了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参数中使用 boostrap 命令与zookeeper chroot,如-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