Solrj无法从Solr Cloud示例连接到zookeeper

时间:2016-03-08 18:20:41

标签: solr apache-zookeeper solrj

我通过运行包含的示例bin/solr -e cloud启动了Solrcloud,在这种情况下,我设法启动了三个节点Solr云并创建了一个gettingstarted集合:

http://localhost:8983/solr/admin/collections?action=CREATE&name=gettingstarted&numShards=3&replicationFactor=2&maxShardsPerNode=2&collection.configName=gettingstarted

我认为它带有一个在端口9983上运行的嵌入式zookeeper,因为我在启动云时看到了这个输出:

...
Starting up Solr on port 7574 using command:
bin/solr start -cloud -p 7574 -s "example/cloud/node2/solr" -z localhost:9983
Waiting up to 30 seconds to see Solr running on port 7574 [/] 
... 

但是,当我尝试使用SolrJ连接到SolrCloud时,它失败并显示错误消息:

Exception in thread "main" org.apache.solr.common.SolrException: Cannot connect to cluster at localhost:9983/solr: cluster not found/not ready

enter image description here

任何人都可以帮我理解这里发生了什么吗?

2 个答案:

答案 0 :(得分:5)

代码失败,因为您试图将CloudSolrServer指向不存在的znode。 您的zkhost未配置/solr chroot。配置似乎存储在根节点。

所以改变行

String zkHostString = "localhost:9983/solr";

String zkHostString = "localhost:9983";

并且您的代码应该可以使用。

答案 1 :(得分:1)

这取决于你的zkHost。如果你的zkHost包含/ solr,那么它应该是localhost:2181 / solr或localhost:9983 / solr;否则,localhost:yourport