ZooKeeper 文件管理

使用 SolrCloud,您的配置文件会保存在 ZooKeeper 中。

在以下任一情况下,都会上传这些文件:

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

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

  • 显式上传配置集到 ZooKeeper。

启动引导

当您第一次使用 bin/solr start -e cloud 尝试 SolrCloud 时,相关的 configset 会自动上传到 ZooKeeper,并与新创建的集合链接。

以下命令将启动 SolrCloud,默认集合名称(gettingstarted)和默认 configset(_default)已上传并与之链接。

bin/solr start -e cloud --no-prompt

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

bin/solr create -c mycollection -d _default

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

将配置目录上传到 ZooKeeper 后,您可以使用 Solr 控制脚本更新它们。

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

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

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

可以使用以下命令通过 bin/solr 脚本上传新的 configset。

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

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

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

强烈建议将配置保存在版本控制系统(如 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>