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.