【问题标题】:Run Multiple Solr instances in SolrCloud with three ZooKeeper server在具有三个 ZooKeeper 服务器的 SolrCloud 中运行多个 Solr 实例
【发布时间】:2016-10-26 16:51:14
【问题描述】:

使用https://gist.github.com/kalharbi/fd29661b9926eb087c45 的 Kalharbi 这个奇妙的 GIST,我在我的本地主机上配置了 SolrCloud,在端口 2181 上使用三个 ZooKeeper 服务器, 2182 & 2183,他们的角色分别是追随者、追随者和领导者。

我已经上传了两个不同的配置,即 tr_config & rp_config 到 ZooKeeper 并使用以下命令创建两个集合

我的配置文件夹包含一些文件,如 schema.xml、solrconfig.xml 等,在

     -/opt/solr/server/solr/configsets/tr_config
     -/opt/solr/server/solr/configsets/rp_config

上传配置到 ZooKeeper

./server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost 127.0.0.1:2181 -confdir ./server/solr/configsets/tr_config/conf/ -confname tr_config

./server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost 127.0.0.1:2181 -confdir ./server/solr/configsets/rp_config/conf/ -confname rp_config

创建收藏夹

curl 'http://localhost:8983/solr/admin/collections?action=CREATE&name=transactions&numShards=2&replicationFactor=1&collection.configName=tr_config'

curl 'http://localhost:8983/solr/admin/collections?action=CREATE&name=properties&numShards=2&replicationFactor=1&collection.configName=rp_config'

它工作正常,但后来我更改了属性集合上的 solrconfig.xml 并再次将配置更新到 ZooKeeper 服务器,然后它在 solr 初始化时显示 lockType.native 问题,所以我在 solrconfig.xml 上设置了 lockType:none。它再次起作用。但是当我使用命令在 8983、8984 和 8985 等不同端口上运行所有 solr 实例时

$ ./bin/solr start -c -p 8983 -z 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
$ ./bin/solr start -c -p 8984 -z 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
$ ./bin/solr start -c -p 8985 -z 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

显示

没有服务器托管分片:shard1

但如果我停止 8984 和 8985 端口上的其他 solr 实例并重新启动 8983,那么我的所有文档都是可查询的。如果我再次启动任何 8984 或 8985 solr 实例,则 8983 实例再次不可查询。

问题可能是所有三个的数据索引目录都相同 solr 实例,但我不知道如何以不同的方式配置它 所有其他 solr 集合。所以专家们在我的下面给出了一些启示 问题。

  1. 有什么问题?为什么我不能运行三个实例 更新 ZooKeeper 上的配置。?

  2. 如何更改 maxShardsPerNode ?

提前致谢

【问题讨论】:

    标签: solr apache-zookeeper solrcloud


    【解决方案1】:

    您可能已经解决了 - 对所有节点使用相同的数据目录将不起作用(或者正如您所发现的,它会给出奇怪的错误)。如果要运行多个节点,则必须为每个节点提供不同的 solr.home 目录。

    你可以在启动 Solr 的时候设置这个:

    -s
    设置 solr.solr.home 系统属性; Solr 将在该目录下创建核心目录。这允许您在同一主机上运行多个 Solr 实例,同时使用 -d 参数重用同一服务器目录集。如果设置,指定的目录应该包含一个 solr.xml 文件,除非 ZooKeeper 中存在 solr.xml。默认值为 server/solr。

    关于maxShardsPerNode,我认为你不能。当您创建集合时,该设置将是集合的“一成不变”。然而,为了让这些事情变得更容易,Rebalance API 正在进行中。

    现在您可以使用手动 SPLITSHARD 命令将分片分成两个不同的部分。这可以在服务器响应请求时完成,并将分片分成两半。

    【讨论】:

    • 抱歉,点击勾选按钮迟到了。太棒了,你让我很开心先生:)。它工作正常,我创建了三个实例目录并在每个实例目录上添加了 solr.xml 的副本。 ,最后使用参数 -s path/t/instanceDir 运行 solr 实例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多