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