I downloaded and installed Solr (SolrCloud) v. 4.10.3 to my local system and I can run it without problems, index documents, interact with its web interface. I can also use the following command line to interact with ZooKeeper:
zkcli.sh -z localhost:9983 -cmd get /clusterstate.json
and he returns me information about SolrCloud. Now I am trying to get a similar set of information programmatically using Java.
I tried the following:
SolrZkClient solrZkClient = new SolrZkClient("localhost:9983", 4000);
ZkStateReader zkStateReader = new ZkStateReader(solrZkClient);
System.err.println(zkStateReader.getClusterState());
System.err.println(zkStateReader.getClusterState().getLiveNodes());
But unfortunately, zkStateReader.getClusterState () returns null.
In the log output, I see the following:
2015-04-23 15:19:04 INFO ZooKeeper:100 - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
2015-04-23 15:19:04 INFO ZooKeeper:100 - Client environment:host.name=emre-ubuntu
2015-04-23 15:19:04 INFO ZooKeeper:100 - Client environment:java.version=1.8.0_25
2015-04-23 15:19:04 INFO ZooKeeper:100 - Client environment:java.vendor=Oracle Corporation
2015-04-23 15:19:04 INFO ZooKeeper:100 - Client environment:java.home=/usr/lib/jvm/java-8-oracle/jre
...
2015-04-23 15:19:04 INFO ZooKeeper:438 - Initiating client connection, connectString=localhost:9983 sessionTimeout=4000 watcher=org.apache.solr.common.cloud.ConnectionManager@3b22cdd0
2015-04-23 15:19:04 INFO ConnectionManager:207 - Waiting for client to connect to ZooKeeper
2015-04-23 15:19:04 INFO ClientCnxn:966 - Opening socket connection to server localhost/127.0.0.1:9983. Will not attempt to authenticate using SASL (unknown error)
2015-04-23 15:19:04 INFO ClientCnxn:849 - Socket connection established to localhost/127.0.0.1:9983, initiating session
2015-04-23 15:19:04 INFO ClientCnxn:1207 - Session establishment complete on server localhost/127.0.0.1:9983, sessionid = 0x14ce5f89eec000d, negotiated timeout = 4000
2015-04-23 15:19:04 INFO ConnectionManager:102 - Watcher org.apache.solr.common.cloud.ConnectionManager@3b22cdd0 name:ZooKeeperConnection Watcher:localhost:9983 got event WatchedEvent state:SyncConnected type:None path:null path:null type:None
2015-04-23 15:19:04 INFO ConnectionManager:225 - Client is connected to ZooKeeper
null
Am I missing something? How can I get this information using Java?