Hello Greg,

so it's SolrZkClient indeed. I've tried it out and it seems to do just the job I need. Thank you!

On a related note - is there a similar way to create/reload core/collection, using maybe CloudSolrServer or smth. inside it? Didn't found any methods that could do the thing.

Regards,
Artem.

04.12.2013 17:15, Greg Walters пишет:
Hi Artem,

This question (or one very like it) has been asked on this list before so 
there's some prior art you could modify to suit your needs.

Taken from Timothy Potter <thelabd...@gmail.com>:

**
    public static void updateClusterstateJsonInZk(CloudSolrServer
cloudSolrServer, CommandLine cli) throws Exception {
        String updateClusterstateJson =
cli.getOptionValue("updateClusterstateJson");

        ZkStateReader zkStateReader = cloudSolrServer.getZkStateReader();
        SolrZkClient zkClient = zkStateReader.getZkClient();

        File jsonFile = new File(updateClusterstateJson);
        if (!jsonFile.isFile()) {
            System.err.println(jsonFile.getAbsolutePath()+" not found.");
            return;
        }

        byte[] clusterstateJson = readFile(jsonFile);

        // validate the user is passing is valid JSON
        InputStreamReader bytesReader = new InputStreamReader(new
ByteArrayInputStream(clusterstateJson), "UTF-8");
        JSONParser parser = new JSONParser(bytesReader);
        parser.toString();

        zkClient.setData("/clusterstate.json", clusterstateJson, true);
        System.out.println("Updated /clusterstate.json with data from
"+jsonFile.getAbsolutePath());
    }
**

You should be able to modify that or use it as a basis for uploading the 
changed files in your config.

Thanks,
Greg

On Dec 4, 2013, at 8:36 AM, Artem Karpenko <gooy...@gmail.com> wrote:

What is the best way to upload Solr configuration files into ZooKeeper 
programmatically, i.e. - from within Java code?
I know that there are cloud-scripts for this, but in the end they should use 
some Java client library, don't they?

This question raised because we use special configuration system (Java-based) 
to store all configuration files (not only Solr) and it'd be cool if we could
export modified files into ZooKeeper when applying changes. We would then 
reload collections remotely via REST API.

I've digged a little into ZkCli class and it seems that SolrZkClient can do 
something along the lines above. Is it the right tool for the job?

Any hints would be appreciated.

Regards,
Artem.


Reply via email to