我有 3 个 vm 窗口,它们都安装了 solr 5.4.0 和 3.4.6 zookeeper;这两个服务在 vm 启动时自动启动。重新启动 vms 后,solr 没有正确响应,它给了我 error500:
HTTP 错误 500 访问 /solr/ 时出现问题。原因:服务器错误... SolrException:处理请求时出错。CoreContainer 要么未初始化,要么正在关闭。
检查日志我也看到了这个错误:
oascSolrCore null:org.apache.solr.common.SolrException:从zookeeper加载solr.xml时出错
尝试停止所有 vm 上的 zookeeper 和 solr 服务并重新启动(在所有 vm 上启动 zookeeper 之前和 solr 之后),有时需要 solr 才能正常工作;其他时候,通过 UI 的 solrcloud 部分,我们注意到节点处于关闭状态(写成棕色)
我列出了我为创建集群 solr 而运行的过程:
- 创建文件夹“zookeeper/data”并通过以这种方式添加zookeeper节点来更改zoo.cfg文件
初始化限制=5
同步限制=2
dataDir=C:/动物园管理员/数据
客户端端口=2181
server.1=zknode1:2888:3888
server.2=zknode2:2888:3888
server.3=zknode2:2888:3888
- 在 zookeeper\data 的节点(1、2、3)上创建了具有相应编号的 myid 文件
- 通过 NSSM,我创建了启动脚本 zookeeper\bin\zkServer.cmd 的 zk 服务,以及使用以下参数启动 solr\bin\solr.cmd 的 solr 服务
-c -z "zknode1:2181,zknode2:2181,zknode3:2181" -f
我基于 solr 而不是 cloud 上的现有配置创建了一个集合
solr.cmd create_collection -c mycoll -d C:\conf\mycoll\conf -n mycoll -shards 1 -replicationFactor 3
在每个 solr 节点上看到创建的 mycoll_shard1_replicaX 文件夹,其中 X 在每个节点 (1,2,3) 上发生变化。查询所有工作,甚至数据导入,但如果我重新启动节点,发现上面写的问题。我在创建集合时出错了,或者这是一个已知的错误?
建议在 solr 尝试初始化之前可能没有启动 zookeeper。使用nssm依赖可以让solr服务依赖zookeeper服务。 https://nssm.cc/usage
我通过在这些模式下设置服务启动解决了这个问题