Created on 07-23-2017 11:42 PM - edited 09-16-2022 04:58 AM
CDH version : 5.9.2
solr version : 4.10.3
I am trying to import Oracle table data to the Solrcloud. I am getting the error when creating the collection with the below command
solrctl --zk ${ZOOKEEPER_CONNECT} collection --create xxxx -s 2
Trace:
Caused by: java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport.DataImportHandler
so I created the lib folder inside my core instantdir like
instantDir/lib and copied jar from the parcel folder
/data/opt/cloudera/parcels/CDH-5.9.2-1.cdh5.9.2.p0.3/jars/solr-dataimportandler*.jar
But it does not consider those folder jars when i again try to create the collection getting same error.
In solrconfig.xml i have below entry for lib tag:
<lib dir="../lib" />
when i check the solr server log i can see few warns
2017-07-24 08:15:31,421 WARN org.apache.solr.core.SolrResourceLoader: Can't find (or read) directory to add to classloader: ../lib (resolved as: /var/lib/solr/xxxx_shard1_replica1/../lib).
From my understanding the folder xxxx_shard1_replica1 must be created once the collection are successfully created.
But I don't why it is refering it that folder and throwing the error.
Created 07-23-2017 11:54 PM
How about adding a lib configuration to your solrconfig.xml? Like below:
<lib dir="/opt/cloudera/parcels/CDH/lib/solr/" regex="solr-dataimporthandler*\.jar" />
Also, the dir /var/lib/solr/xxxx_shard1_replica1 is created by solr when the node is asked to load the core, not when the collection is created.
Created 07-23-2017 11:54 PM
How about adding a lib configuration to your solrconfig.xml? Like below:
<lib dir="/opt/cloudera/parcels/CDH/lib/solr/" regex="solr-dataimporthandler*\.jar" />
Also, the dir /var/lib/solr/xxxx_shard1_replica1 is created by solr when the node is asked to load the core, not when the collection is created.
Created 07-24-2017 12:10 AM
Yuexin Zhang thank you for your reply
Your solution partially solved my problem. now the collection are created with the below error in the solrAdmin console.
org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: RequestHandler init failure
Solrconfig xml:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
I feel like it expected the ojdbc.jar in the classpath. Since I have 5 nodes cluster should i need to copy the ojdbc.jar in all the node of the folder
/opt/cloudera/parcels/CDH/lib/solr/
Created 07-24-2017 12:44 AM
I have copied the ojdbc6.jar to the path
/opt/cloudera/parcels/CDH/lib/solr/
in all 5 nodes. still getting the problem in the SolrCore Initialization Failures error in the solr admin page and also it didn't listing the created collection core in the admin page.
Error:
org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: RequestHandler init failure
Created 07-24-2017 02:08 AM
Problem has been solved. the mistake is mine,previously i have given wrong driver name and url for oracle connection. I have corrected and it successully imported data from oracle.
Created 08-01-2017 11:49 AM
Glad the issue the resolved but try to use some other location to store those jars instead of /opt/cloudera/parcels as when you upgrade you can lose all those jars.