Error flume MorphlineSolrSink readJson java.lang.NoSuchFieldError:USE_DEFAULTS

时间:2017-01-26 07:40:53

标签: flume cloudera-manager morphline

我正试图从avro源读取json并沉入Solr。 当我尝试pointcut="execution(public * org.springframework.data.jpa.repository.JpaRepository+.*(..))"并以字符串形式存储时,它起作用。 但是在尝试readLine {}时会抛出以下错误。

版本: CDH 5.9.0,Parcels

错误

readJson{}

Flume配置:

2017-01-26 06:35:38,604 ERROR org.apache.flume.lifecycle.LifecycleSupervisor: Unable to start SinkRunner: { policy:org.apache.flume.sink.DefaultSinkProcessor@513a4842 counterGroup:{ name:null counters:{} } } - Exception follows.
java.lang.NoSuchFieldError: USE_DEFAULTS
        at com.fasterxml.jackson.annotation.JsonInclude$Value.<clinit>(JsonInclude.java:204)
        at com.fasterxml.jackson.databind.cfg.MapperConfig.<clinit>(MapperConfig.java:44)
        at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:558)
        at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:483)
        at org.kitesdk.morphline.json.ReadJsonBuilder$ReadJson.<init>(ReadJsonBuilder.java:88)
        at org.kitesdk.morphline.json.ReadJsonBuilder.build(ReadJsonBuilder.java:55)
        at org.kitesdk.morphline.base.AbstractCommand.buildCommand(AbstractCommand.java:307)
        at org.kitesdk.morphline.base.AbstractCommand.buildCommandChain(AbstractCommand.java:254)
        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:101)
        at org.apache.flume.sink.solr.morphline.MorphlineSink.start(MorphlineSink.java:98)
        at org.apache.flume.sink.DefaultSinkProcessor.start(DefaultSinkProcessor.java:46)
        at org.apache.flume.SinkRunner.start(SinkRunner.java:79)
        at org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:251)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

morphline.conf

  

SOLR_LOCATOR:{collection:testCollection zkHost:   &#34; 192.168.21.31:2181 / solr的&#34; }

     

morphlines:[{       id:morphline1 importCommands:[&#34; com.cloudera。&#34;,&#34; org.apache.solr。&#34;,&#34; org.kitesdk。* *&#34;]

agent.sources = AvroSource
agent.channels = memorychannel1
agent.sinks = solrSink

agent.channels.memorychannel1.type = memory
agent.channels.memorychannel1.capacity = 10000
agent.channels.memorychannel1.transactionCapacity = 200

The avro source
agent.sources.AvroSource.type     = avro
agent.sources.AvroSource.bind     = 0.0.0.0
agent.sources.AvroSource.port     = 4344
agent.sources.AvroSource.channels = memorychannel1
agent.sources.AvroSource.compression-type = deflate

agent.sinks.solrSink.type = org.apache.flume.sink.solr.morphline.MorphlineSolrSink
agent.sinks.solrSink.morphlineFile = /home/flume/morphline.conf

agent.sources.AvroSource.channels = memorychannel1
agent.sinks.solrSink.channel = memorychannel1

1 个答案:

答案 0 :(得分:0)

此错误来自jackson-annotations库。

在2.6 中添加了USE_DEFAULTS枚举常量 Screenshot from jackson-annotation document CDH 5.9.0有旧版的jackson-annotations CDH jar list 添加新版本以解决问题。