我有一个独立的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
file.
My Solr directory looks like this:
我的 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>
Each core looks like this:
core.properties 只有核心的名称:
name=users
我的问题是:
- 如何启动 Solrcloud v5.1 以便拾取 4 个核心?
在 SolrCloud 中,您的每个Core将成为一个收藏.
每个集合都有自己的一组配置文件和数据。
您可能会发现这很有帮助将多核 SOLR 实例迁移到云端 http://volodk.blogspot.com/2013/08/moving-multi-core-solr-instance-to-cloud.html
Solr 5.0(以上版本)对如何使用分片创建 SolrCloud 设置以及如何添加集合等进行了一些更改。
下面列出的所有内容都是我对 Solr 参考指南的理解。我强烈建议彻底阅读它。https://cwiki.apache.org/confluence/display/solr/Apache+Solr+Reference+Guide https://cwiki.apache.org/confluence/display/solr/Apache+Solr+Reference+Guide
我在 Linux(CentOS)服务器上设置我的服务器,但这些步骤也可以用于在 Windows 系统上设置 solr。例如,有solr.cmd
文件而不是solr.sh
以下是我创建简单的两个分片 SolrCloud 设置所遵循的步骤。
设置动物园管理员整体。我假设您正在尝试使用
在solr中嵌入ZK。对于生产系统来说,它是高度
建议创建一个外部 ZK ensemble。您可以在以下位置找到安装外部集成的步骤本节参考指南 https://cwiki.apache.org/confluence/display/solr/Setting+Up+an+External+ZooKeeper+Ensemble
下载solr到/opt
文件夹。
-
仅提取安装文件。
tar xzf solr-5.0.0.tgz solr-5.0.0/bin/install_solr_service.sh --strip components=2
-
该命令将install您系统上的 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
Running install_solr_service start
在上面的步骤中将启动一个solr服务器。使用停止服务器service solr stop
在进行以下任何更改之前。
-
更改 Java 堆值
SOLR_HEAP="3g"
这会将 Xmx 和 Xms 设置为 3GB 。 (选修的)
Solr 5.1 中的 solr.in.sh 文件中未提及此变量。这是一个错误,已修复,将在下一个版本中发布。
-
SOLR_MODE="solrcloud"
Required
这就是您在云模式下启动 solr 所需要的。
-
ZK_HOST=ZK1:2181,ZK2:2181,ZK3:2181
Required
(将 zk 替换为您的 Zookeeper 主机名)
运行install_solr_service.sh
命令还会创建一个 init.d 文件,如下所示/etc/init.d/solr
This init.d
脚本依次调用/opt/solr/bin/solr
脚本并包含来自的所有变量/var/solr/solr.in.sh
完成上述更改后,使用以下命令再次启动 solrservice solr start
- 您可以使用以下命令检查状态
service solr status
创建集合分片和副本- 所有与分片、集合、副本相关的命令现在均使用集合 API 进行。
sh zkcli.sh -cmd upconfig -zkhost zk1:2181,zk2:2181,zk3:2181 -confname yourconfigname -confdir /var/solr/configs/conf
您将为 4 个核心分别运行此命令 4 次,每次更改 conf 文件夹的路径和配置名称。
- 这将上传zookeeper中conf文件夹中名为“yourconfigname”的所有配置文件。
创建集合我使用以下命令创建一个新集合。
快乐搜索!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)