【问题标题】:Solrcloud multicore configurationSolrcloud 多核配置
【发布时间】:2015-06-06 09:11:58
【问题描述】:

我有一个独立的 Solr 实例,它有 4 个不同的内核,使用嵌入式 Jetty 服务器可以正常工作。我为 v4.10.3 配置了核心,但自从我迁移到 v5.1 之后,一切似乎都可以正常工作,没有任何更改。

在投入生产之前,我需要将其设置为 Solrcloud 安装,最初有 2 个节点(两台不同的机器),每个节点有 1 个分片(为了简单起见)。我一直试图让它工作,但我一直没能做到。

我尝试像这样运行它(我认为使用 start.jar 不是首选方式),读到 Solr 将在任何嵌套文件夹中查找多个配置的核心(适用于独立 Solr):

java -DzkRun -DnumShards=2 -Dbootstrap_confdir=solr/ -jar start.jar

但这不起作用,它没有找到所需的solrconfig.xml 文件。

我的 Solr 目录如下所示:

我的 solr.xml 文件是标准的:

<solr>

  <solrcloud>
    <str name="host">${host:}</str>
    <int name="hostPort">${jetty.port:8983}</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
  </solrcloud>

  <shardHandlerFactory name="shardHandlerFactory"
    class="HttpShardHandlerFactory">
    <int name="socketTimeout">${socketTimeout:0}</int>
    <int name="connTimeout">${connTimeout:0}</int>
  </shardHandlerFactory>

</solr>

每个核心如下所示:

而 core.properties 中只有核心的名称:

name=users

我的问题是:

  • 如何启动 Solrcloud v5.1 以便拾取 4 个内核?

【问题讨论】:

  • @Lalit patadiya 请停止编辑,仅删除问题中的谢谢文本。专注于编辑问题以获得更多可读性和改进。删除感谢文本不会改善问题。

标签: solr lucene multicore sharding solrcloud


【解决方案1】:

在 SolrCloud 中,您的每个 Core 都将成为一个 Collection

每个集合都有自己的一组配置文件和数据。

Moving multi-core SOLR instance to cloud你可能会觉得这很有帮助

Solr 5.0(更高版本)对如何使用分片创建 SolrCloud 设置以及如何添加集合等进行了一些更改。

下面列出的所有内容都是我对 Solr 参考指南的理解。我强烈建议您彻底了解它。 https://cwiki.apache.org/confluence/display/solr/Apache+Solr+Reference+Guide

我在 Linux(CentOS) 服务器上设置我的服务器,但这些步骤也可用于在 Windows 系统上设置 solr。比如有solr.cmd文件而不是solr.sh

以下是我创建简单的两个分片 SolrCloud 设置所遵循的步骤。

  • 设置 zookeeper 整体。我假设您正在尝试使用 在 solr 中嵌入 ZK。对于生产系统来说,它是高度 建议创建外部 ZK 集成。您可以在 this section of reference guid

  • 中找到安装外部集成的步骤
  • 将 solr 下载到 /opt 文件夹。

  • 仅提取安装文件。

    tar xzf solr-5.0.0.tgz solr-5.0.0/bin/install_solr_service.sh --strip components=2

  • 此命令将在您的系统上安装 solr

    sudo bash ./install_solr_service.sh solr-5.0.0.tgz

  • 如果不存在,上述命令将创建一个名为“solr”的新用户。

  • 这些是它假定的一些默认选项。您可以在 /var/solr/solr.in.sh 中查看此内容。这是包含文件,您可以在其中指定其他选项。

        * SOLR_PID_DIR=/var/solr
        * SOLR_HOME=/var/solr/data
        * LOG4J_PROPS=/var/solr/log4j.properties
        * SOLR_LOGS_DIR=/var/solr/logs
        * SOLR_PORT=8983
    
  • 在上述步骤中运行install_solr_service start 将启动一个solr 服务器。在进行以下任何更改之前,使用 service solr stop 停止服务器。

  • 更改 Java 堆值

    SOLR_HEAP="3g"

    这会将 Xmx 和 Xms 设置为 3GB 。 (选修的) Solr 5.1 的 solr.in.sh 文件中未提及此变量。它是一个错误并已修复,将在下一个版本中发布。

  • SOLR_MODE="solrcloud" 必填

    这就是你在云模式下启动 solr 所需要的。

  • ZK_HOST=ZK1:2181,ZK2:2181,ZK3:2181 必填

    (将 zk 替换为您的 zookeeper 主机名)

  • 运行install_solr_service.sh 命令还会创建一个init.d 文件作为/etc/init.d/solr

  • init.d 脚本依次调用/opt/solr/bin/solr 脚本并包含来自/var/solr/solr.in.sh 的所有变量

  • 完成上述更改后,使用 service solr start 再次启动 solr

  • 您可以使用service solr status查看状态

创建集合分片和副本 - 所有分片、集合、副本相关的命令现在都使用集合 API 进行。

  • 在创建集合之前,应将配置文件夹上传到 ZK。 这可以使用 solr 文件夹中的 zkcli.sh 脚本来完成(不在 zookeeper 服务器上) 文件夹:/opt/solr/server/scripts/cloud-scripts

  • 上传confg文件夹的命令是

sh zkcli.sh -cmd upconfig -zkhost zk1:2181,zk2:2181,zk3:2181 -confname yourconfigname -confdir /var/solr/configs/conf

您将为 4 个核心中的每一个运行此命令 4 次,每次都会更改 conf 文件夹的路径和配置名称。

  • 这将上传zookeeper中名为'yourconfigname'的conf文件夹中的所有配置文件。

创建集合 我使用以下命令创建了一个新集合。

http://1.1.1.1:8983/solr/admin/collections?action=CREATE&name=yourcollectionname&numShards=2&replicationFactor=1&maxShardsPerNode=1&createNodeSet=1.1.1.1:8983_solr,2.2.2.2:8983_solr&collection.configName=yourconfigname

搜索愉快!

【讨论】:

  • 谢谢@jay,你肯定清除了我的一些概念。现在,由于我拥有的 SolrEventListener 自定义类出现错误,我的一个节点(集合)无法正常启动。它在 4.10.3 独立版上运行良好,但在 5.2 云版上却失败了。我会做一些研究,也许会发布一个关于它的新问题。我感觉 Solr 的开发比更新文档要快得多。
  • @s1m3n 您还可以通过在邮件列表中搜索您遇到的错误来找到解决方案。 lucene.472066.n3.nabble.com/Solr-f472067.html 或检查现有的 Jira 问题 - issues.apache.org/jira/browse/solr/…
  • 我在 irc.freenode.net 上尝试了#solr,但没有成功,从我的角度来看,邮件列表非常复杂。从现在开始,我将尝试 Jira。谢谢。
  • 当然,能够提供积分会增加有人发布像您这样的好答案的机会!
【解决方案2】:

SolrCloud 不使用存储在核心conf 目录中的配置文件。为了让你的核心在 SolrCloud 结构中可见,你需要将配置文件上传到 ZooKeeper 并让它管理你的文件。 Solr 实例始终出现时,它会获取存储在 ZooKeeper 中的配置文件。这样你的核心就不需要有conf 目录来工作。要将您的核心配置文件上传到 ZooKeeper,请点击以下链接并查看 Upload a configuration directory

https://cwiki.apache.org/confluence/display/solr/Command+Line+Utilities

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 2012-08-29
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多