如何在外部 zookeeper 上使用 upconfig 和 linkconfig 脚本

How to use upconfig & linkconfig scripts on external zookeeper

我正在尝试设置一个 solrCloud,其中包含 3 个服务器的外部 zookeeper 集合和 2 个服务器上的复制 solr。

假设外部 zookeeper 应该独立于其他存储,我不知道如何设置 -solrhome 参数。动物园管理员应该从工作节点读取数据吗?

如何上传配置并link它与目标集合?

我们在使用 solr.home 时遇到了很多问题,所以给自己省点压力,让你的目录保持 solr 默认的样子。

示例:

  • /example/solr/collection1/conf/schema.xml
  • /example/solr/collection1/conf/solrconfig.xml
  • /example/solr/collection1/core.属性
  • /example/start.jar

要将您的配置导入 Zookeeper,请熟悉 solr 的 zkcli.sh 脚本。你想用它来管理你的 solr 配置。它将create/updateZK中/configs节点下的文件

./zkcli.sh -cmd upconfig -confdir /example/solr/collection1/conf -confname collection1 -z 127.0.0.1

在运行上面的upconfig cmd后,/example/solr/collection1/conf的文件会上传到/configs/collection1下的ZK.

还需要link你的配置到你的集合(在ZK中的/collections节点下创建一个节点)

# only need to link the config once
./zkcli.sh -cmd linkconfig -collection collection1 -confname collection1 -z 127.0.0.1

然后你就可以像这样启动solr:

java -DzkHost=127.0.0.1 -jar start.jar

您云中的其他服务器现在将从 zookeeper 获取配置!在一个非常好的博客 post 中有更多信息:SolrCloud Cluster (Single Collection) Deployment

注意:127.0.0.1 是您的 ZK 服务器的逗号分隔列表,collection1 是您的集合

您可以将 Solr 配置的根指定为 Zookeeper 连接字符串的一部分:-zkhost host1,host2,hostN/solr