首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solrcloud多核配置

Solrcloud多核配置
EN

Stack Overflow用户
提问于 2015-06-06 09:11:58
回答 2查看 3.5K关注 0票数 3

我有一个独立的Solr实例,它有4个不同的核心,使用嵌入式Jetty服务器工作得很好。我为v4.10.3配置了内核,但是自从我转到v5.1之后,所有的内核似乎都工作得很好,没有任何变化。

在投入生产之前,我需要将其设置为Solrcloud安装,最初使用两个节点(两台不同的机器),每个节点有一个碎片(以保持简单)。我一直在努力使它发挥作用,但我未能做到。

我试图像这样运行它(我认为使用start.jar不是首选的方法),阅读了Solr将在任何嵌套文件夹中查找多个配置的核心(这对独立的Solr有效):

代码语言:javascript
复制
java -DzkRun -DnumShards=2 -Dbootstrap_confdir=solr/ -jar start.jar

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

我的Solr目录如下所示:

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

代码语言:javascript
复制
<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的核心名称是:

代码语言:javascript
复制
name=users

我的问题是:

  • 我如何启动Solrcloud v5.1,以使4个核心被拾取?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-09 01:48:29

在SolrCloud中,每个核心都将成为集合

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

您可能会发现这个有用的将多核SOLR实例移动到云上

Solr5.0(继续)在如何创建带有碎片的SolrCloud设置以及如何添加集合等方面做了一些更改。

下面列出的一切都是我对Solr参考指南的理解。我强烈建议大家仔细研究一下。https://cwiki.apache.org/confluence/display/solr/Apache+Solr+Reference+Guide

我在Linux(CentOS)服务器上安装了服务器,但是这些步骤也可以用于在Windows上安装solr。例如,有solr.cmd文件而不是solr.sh文件。

下面是我创建一个简单的两片SolrCloud设置的步骤。

  • 设置动物园管理员集合。我假设您正在尝试使用solr中的嵌入式ZK。对于生产系统,强烈建议创建外部ZK集成。您可以找到在这部分参考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_log_DIR=/var/solr/log* SOLR_PORT=8983
  • 在上述步骤中运行install_solr_service start将启动solr服务器。在进行以下任何更改之前,请停止使用service solr stop的服务器。
  • 更改Java堆值 SOLR_HEAP="3g" 这将将Xmx和Xms设置为3GB。(可选)Solr5.1中的solr.in.sh文件中没有提到这个变量。这是一个bug,并已修复,将在下一个版本发布。
  • SOLR_MODE="solrcloud" 必需的 这就是您需要在云模式下启动solr的内容。
  • ZK_HOST=ZK1:2181,ZK2:2181,ZK3:2181 必需的 (用动物园管理员的主机名替换zk )
  • 运行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生成。

  • 在创建集合之前,应该将config文件夹上载到ZK。这可以使用solr文件夹中的zkcli.sh脚本来完成(而不是在动物园管理员服务器上):/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文件夹的路径和配置名称.

  • 这将上传所有配置文件在conf文件夹中的名字‘你的信任“在动物园管理员。

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

solr&collection.configName=yourconfigname

搜索愉快!

票数 3
EN

Stack Overflow用户

发布于 2015-06-08 21:03:02

SolrCloud不使用存储在核心conf目录中的配置文件。要使核心在SolrCloud结构中可见,您需要将配置文件上传到ZooKeeper,并将其管理给您。当Solr实例出现时,它就会得到存储在ZooKeeper中的配置文件。这样你的核心就不需要有conf目录来工作了。要将您的核心配置文件上传到ZooKeeper,请按照下面的链接查看Upload a configuration directory

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30681014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档