You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flume.apache.org by tj...@tutanota.com on 2017/06/27 16:24:37 UTC

java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/SolrServer

I am integrating flume (v 1.7) with solr morphline sinks. Solr version is 6.6.0. But when starting up flume 
    flume-ng agent --conf conf/ --conf-file conf/agent.conf --name a1 -Dflume.root.logger=INFO,console > logs/flume.log 

The log file throws NoClassDefFoundError
    java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/SolrServer         at org.kitesdk.morphline.solr.LoadSolrBuilder$LoadSolr.<init>(LoadSolrBuilder.java:85)        at org.kitesdk.morphline.solr.LoadSolrBuilder.build(LoadSolrBuilder.java:67)        at org.kitesdk.morphline.base.AbstractCommand.buildCommand(AbstractCommand.java:302)        at org.kitesdk.morphline.base.AbstractCommand.buildCommandChain(AbstractCommand.java:249)        at org.kitesdk.morphline.stdlib.Pipe.<init>(Pipe.java:46)        at org.kitesdk.morphline.stdlib.PipeBuilder.build(PipeBuilder.java:40)        at org.kitesdk.morphline.base.Compiler.compile(Compiler.java:126)        at org.kitesdk.morphline.base.Compiler.compile(Compiler.java:55)        at org.apache.flume.sink.solr.morphline.MorphlineHandlerImpl.configure(MorphlineHandlerImpl.java:12)        at org.apache.flume.sink.solr.morphline.MorphlineSink.start(MorphlineSink.java:98)        at org.apache.flume.sink.DefaultSinkProcessor.start(DefaultSinkProcessor.java:45)        at org.apache.flume.SinkRunner.start(SinkRunner.java:79)
But I am sure solr-solrj-6.6.0.jar existed in lib folder

    -rw-rw-r-- 1 jason jason 1.2M Jun 27 15:53 lib/solr-solrj-6.6.0.jar

How can I fix this problem? 

Thanks. 
My morphline conf looks like 
solrLocator: {  collection : collection1  zkHost : "127.0.0.1:2181"}
morphlines : [  {
    id : morphline1    importCommands : ["org.kitesdk.**", "org.apache.solr.**"]
    commands : [      { readJson { } }      { generateUUID { field : id } }      { loadSolr: { solrLocator : ${solrLocator} } }    ]  }]
And flume agent conf containing morphline sink (other parts of conf e.g. sources are correctly configured as it works with different sources and sink such as kafka and s3)
a1.sinks.k1.type = org.apache.flume.sink.solr.morphline.MorphlineSolrSink
a1.sinks.k1.channel = c2a1.sinks.k1.morphlineFile =/path/to/conf/morphline.confa1.sinks.k1.morphlineId = morphline1