On 1/2/2017 7:07 PM, Bob Cook wrote: > I've create some custom plugin that I put in a lib directory at the > same level as the conf directory for the core which is loaded via the > lib directives in solrconfig.xml /solrdata/CoreName/conf > /solrdata/CoreName/lib /solrdata/CoreName/core.properties This works > great when using Solr. But when I use SolrCloud, I get an error when > creating the collection as it can't find the plugin libraries. Now > that Zookeeper is managing the conf directory (configuration files, > i.e. solrconfig.xml), what is the relative path in solrconfig.xml > pointing to?
I actually do not know what the path for lib directives is relative to when running SolrCloud. Most things in a core config are relative to the location of the config file itself, but in this case, the config file is not on the filesystem at all, it's in zookeeper, and I don't think Solr can use jars in zookeeper. Also there's a size limit of one megabyte for items in zookeeper without special config, and increasing the limit is not recommended. > how do I specify the relative path, or do I need to specify an > absolute path? Or do I need to put the libraries somewhere else? My recommendation: Do not use "lib" directives, or any other kind of jar-loading related config including sharedLib, at all. On each machine, create a "lib" directory in the solr home and place all your extra jars there. The solr home is where solr.xml lives and where the core directories normally go. All jars in this lib directory will be loaded exactly once at startup and made available to all cores, without *any* config. You can also create a lib directory inside the core's instanceDir, which is also automatically loaded by Solr without config, but this presents a bit of a catch-22 problem where you can't create the lib directory until the core exists, but can't get the core to work properly until the lib directory exists. There is a feature in SolrCloud for loading jars from a distributed collection. It doesn't work everywhere in Solr, but classes specified in solrconfig.xml, for things like request handlers, should work. https://cwiki.apache.org/confluence/display/solr/Blob+Store+API There is an enhancement request filed to allow the schema to use jars from the blob store, but it hasn't received much attention yet: https://issues.apache.org/jira/browse/SOLR-9175 Thanks, Shawn