Solrj cannot connect to zookeeper from Solr Cloud Example
Asked Answered
C

2

7

I started a Solrcloud by running the included example bin/solr -e cloud, and in that case, I managed to start up a three nodes Solr cloud and created a gettingstarted collection:

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

I think it comes with a embedded zookeeper running on port 9983 because I saw this output when I started the cloud:

...
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 [/] 
... 

However, when I tried to connect to the SolrCloud using SolrJ, it failed with the error message:

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

Can anyone help me understand what is going on here?

Conchoid answered 8/3, 2016 at 18:20 Comment(2)
For anyone wondering, the Zookeeper connection string should contain ALL zookeeper servers in your zookeeper cluster, separated by commas, SOME zookeeper configuration use a chroot or application root, this is when the /solr appears at the end of the query string. This would be needed when you have a chroot at /solr within Zookeeper. For most configurations this can be omitted.Dimitry
@BenDeMott Maybe this should be an answer?Softener
C
8

The code fails because you are trying to point the CloudSolrServer to a znode that does not exist. Your zkhost is not configured with a /solr chroot. The configs seem to be stored at the root node.

So change the line

String zkHostString = "localhost:9983/solr";

to

String zkHostString = "localhost:9983";

and your code should work.

Clone answered 9/3, 2016 at 4:39 Comment(0)
D
1

It depends on your zkHost. If your zkHost contains /solr , then it should be localhost:2181/solr or localhost:9983/solr; Otherwise , localhost:yourport

Deliver answered 28/12, 2016 at 12:33 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.