ZooKeeper 文件管理

使用 SolrCloud 时,配置文件保存在 ZooKeeper 中。

在下列情况下会上传这些文件

  • 使用 bin/solr 脚本启动 SolrCloud 示例时。

  • 使用 bin/solr 脚本创建集合时。

  • 将配置集显式上传到 ZooKeeper。

启动引导

首次使用 bin/solr -e cloud 试用 SolrCloud 时,相关配置集会自动上传到 ZooKeeper,并与新创建的集合关联。

以下命令将启动 SolrCloud,其中默认集合名称 (gettingstarted) 和默认配置集 (_default) 已上传并与其关联。

bin/solr -e cloud -noprompt

在使用 bin/solr 脚本创建集合时,还可以使用 -d 选项显式上传配置目录,例如

bin/solr create -c mycollection -d _default

创建命令会将 _default 配置目录的副本上传到 /configs/mycollection 下的 ZooKeeper。有关用于创建集合的 create 命令的更多详细信息,请参阅Solr 控制脚本参考

将配置目录上传到 ZooKeeper 后,可以使用Solr 控制脚本对其进行更新。

最好将这些文件保留在版本控制之下。

使用 bin/solr 或 SolrJ 上传配置文件

在生产环境中,还可以使用 Solr 的Solr 控制脚本SolrJ配置集上传到 ZooKeeper,而无需创建集合。

可以使用以下命令使用 bin/solr 脚本上传新的配置集。

bin/solr zk upconfig -n <name for configset> -d <path to directory with configset>

以下代码显示了如何使用 SolrJ 实现此目的

getConfigSetService().uploadConfig("nameForConfigset", Paths.get(localConfigSetDirectory));

强烈建议将配置保存在版本控制系统、Git、SVN 或类似系统中。

管理您的 SolrCloud 配置文件

更新或更改您的 SolrCloud 配置文件

  1. 使用源代码控制签出流程,从 ZooKeeper 下载最新的配置文件。

  2. 进行更改。

  3. 将更改的文件提交到源代码控制。

  4. 将更改推送到 ZooKeeper。

  5. 重新加载集合,以便更改生效。

在首次启动群集之前准备 ZooKeeper

如果您将与其他应用程序共享同一个 ZooKeeper 实例,则应在 ZooKeeper 中使用chroot。有关说明,请参阅 ZooKeeper chroot

某些配置文件包含群集范围的配置。由于其中一些对于群集正常运行至关重要,因此您可能需要在首次启动 Solr 群集之前将此类文件上传到 ZooKeeper。此类配置文件的示例(不详尽)包括 security.jsonclusterprops.json

例如,如果您想启用身份验证,可以使用 bin/solr 实用程序将 security.json 文件推送到 ZooKeeper(Unix 示例)

bin/solr zk cp file:local/file/path/to/security.json zk:/security.json -z localhost:2181
如果您已在 solr.in.sh/solr.in.cmd 中定义了 ZK_HOST(请参阅 xref:zookeeper-ensemble.adoc#updating-solr-include-files,更新 Solr 包含文件>>),则可以从上述命令中省略 -z <zk host string>