Example usage for org.apache.solr.common.cloud ZkStateReader close

List of usage examples for org.apache.solr.common.cloud ZkStateReader close

Introduction

In this page you can find the example usage for org.apache.solr.common.cloud ZkStateReader close.

Prototype

public void close() 

Source Link

Usage

From source file:org.apache.hadoop.hive.solr.SolrInputFormat.java

License:Apache License

@Override
public InputSplit[] getSplits(JobConf job, int numSplits) throws MalformedURLException {

    CloudSolrServer cloudServer = null;/*from w ww. j  a  v  a 2 s  .c o  m*/
    ZkStateReader stateReader;
    Path[] result = FileInputFormat.getInputPaths(job);
    Path path = result[0];
    String zooKeeperAddress = job.get(ExternalTableProperties.ZOOKEEPER_SERVICE_URL);
    cloudServer = new CloudSolrServer(zooKeeperAddress);
    cloudServer.setDefaultCollection(job.get(ExternalTableProperties.COLLECTION_NAME));
    cloudServer.connect();
    stateReader = cloudServer.getZkStateReader();
    ClusterState cs = stateReader.getClusterState();
    Collection<Slice> slices = cs.getSlices(job.get(ExternalTableProperties.COLLECTION_NAME));
    InputSplit[] inputSplits = new SolrFileSplit[slices.size()];
    int i = 0;
    for (Slice slice : slices) {
        Replica leader = slice.getLeader();
        SolrInputSplit split = new SolrInputSplit(leader.getProperties().get("base_url").toString(),
                leader.getProperties().get("core").toString(),
                job.get(ExternalTableProperties.COLLECTION_NAME));
        inputSplits[i] = new SolrFileSplit(split, path);
        i++;
    }
    LOG.debug("solr splits size = " + inputSplits.length);
    stateReader.close();
    return inputSplits;
}