错误水槽MorphlineSolrSink readJson java.lang.NoSuchFieldError:USE_DEFAULTS(Error flume MorphlineSolrSink readJson java.lang.NoSuchFieldError: USE_DEFAULTS)
我正在尝试从avro源读取json并将其下载到Solr。 当我尝试
readLine {}
并存储为字符串时,它工作。 但是在尝试readJson{}
时抛出以下错误。版本:CDH 5.9.0,Parcels
错误
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)
水槽配置:
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
morphline.conf
SOLR_LOCATOR:{collection:testCollection zkHost:“192.168.21.31:2181/solr”}
morphlines:[{id:morphline1 importCommands:[“com.cloudera。 ”,“org.apache.solr。 ”,“org.kitesdk。**”]
commands : [ # read the JSON blob { readJson: {} } { extractAvroPaths { flatten : false paths : { id : /id type : /type name : /name address : /address } } } { sanitizeUnknownSolrFields { # Location from which to fetch Solr schema solrLocator : ${SOLR_LOCATOR} # renameToPrefix : "ignored_" } } # load the record into a Solr server or MapReduce Reducer. { loadSolr { solrLocator : ${SOLR_LOCATOR} } } ] } ]
I am trying to read json from avro source and sink to Solr. When I tried
readLine {}
and stored as string it worked. But when tryingreadJson{}
it throwing following error.Version : CDH 5.9.0, Parcels
Error
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)
Flume Config :
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
morphline.conf
SOLR_LOCATOR : { collection : testCollection zkHost : "192.168.21.31:2181/solr" }
morphlines : [ { id : morphline1 importCommands : ["com.cloudera.", "org.apache.solr.", "org.kitesdk.**"]
commands : [ # read the JSON blob { readJson: {} } { extractAvroPaths { flatten : false paths : { id : /id type : /type name : /name address : /address } } } { sanitizeUnknownSolrFields { # Location from which to fetch Solr schema solrLocator : ${SOLR_LOCATOR} # renameToPrefix : "ignored_" } } # load the record into a Solr server or MapReduce Reducer. { loadSolr { solrLocator : ${SOLR_LOCATOR} } } ] } ]
原文:https://stackoverflow.com/questions/41868760
最满意答案
你需要改变这部分
function(cache)
同
(cache) =>
函数将它绑定到它的作用域,而箭头函数将在它声明的上下文中绑定到它。
You need to change out this part
function(cache)
With
(cache) =>
Function will bind it to its scope, while an arrow function will bind to the this in the context where it was declared.
相关问答
更多-
在React中调用map()函数内的函数render()[复制](Calling functions inside a map() function in React render() [duplicate])[2021-12-21]
collection.map(function (item) { return{item.Name} {this.getItemInfo(item)}}) 因此, function(item)中的范围不是React Component的范围。 如果使用arrow function () => {...}而不是function() {...}您将可以访问React.Component。 尝试这个 collection.map((item) => ({ ...看起来像CompileStatic注释中的错误,就像您将行更改为: this.amap += [one:'two'] 要么 this.amap.one = 'two' 然后它工作正常。 我猜它是由于[]地图访问器的语义。 您可以将其作为错误进行汇总 ,看看是否可以修复 Looks like a bug in the CompileStatic annotation, as if you change the line to: this.amap += [one:'two'] Or this.amap. ...定义基类型的映射。 该映射使用ConstructUsing通过调用适用的子映射来实例化正确的子DTO。 使用AutoMapper 3.0进行测试。 CreateMap() // create DTO by dispatching to child type mappings .ConstructUsing((animal, context) => { switch (animal.AnimalType) { ... 即使不使用put(),对象的属性也会在Map中更改?(Object's property is changed in the Map even without using put()?)[2021-12-07]
这是因为地图只包含对象的引用 - 而不是对象的副本。 当您更改对象中的某些内容时,无论是否通过地图中的引用,您都可以看到更改。 这跟(比方说)完全一样: StringBuilder first = new StringBuilder(); StringBuilder second = first; first.append("Hello"); System.out.println(second); // Prints "Hello" 这里first和second都是对同一个StringBuilder对象 ...改变这个: google.maps.event.addListener(this.map, 'center_changed', function () { //HERE I AM GETTING ABOVE MENTIONED ERROR: alert(this.map.getCenter()); }); 至 google.maps.event.addListener(this.map, 'center_changed', () => { //HERE I AM GETTING A ...你需要改变这部分 function(cache) 同 (cache) => 函数将它绑定到它的作用域,而箭头函数将在它声明的上下文中绑定到它。 You need to change out this part function(cache) With (cache) => Function will bind it to its scope, while an arrow function will bind to the this in the context where it was decla ...每个闭包获得相同的k所以在定义了所有函数后,它将指向color的最后一个键。 解决它的最简单方法是使用自动执行功能创建一个新的方法: for(var k in color) { logger[k] = (function(k) { return function(msg) { console.log(color[k]); console.log("%c" + msg, "color:" + color[k] + ";font-weigh ...你正在寻找一个简单的Javascript for循环你的数组我想,所以这应该是这样的(假设address是一个有效的Javascript数组): // address = ... //define address array here var map = new google.maps.Map(document.getElementById('map'), { mapTypeId: google.maps.MapTypeId.ROADMAP, zoom: 16 }); v ...你可以像这样遍历不可变(快速注释虽然我强烈建议你让整个对象不可变)。 您可以通过使用不可变的本身来保持代码行并使其更加优雅 - const changeImmutableObject = initialState.update('lines', Immutable.List(), (oldList) => oldList.map((listItem) => { if(listItem.get("id") === 1) { return listItem.set ...map是一个接受函数作为参数的方法。 因此习惯上调用map就像调用方法一样:map(aFunction)。 但是,Scala的语法提供了很多灵活性/简写: val list = List((1,2),(3,4)) //An ordinary method call. The braces just evaluate to an anonymous function val a = list.map({ case (a, b) => a + b }) // List(3,7) // Now lets ...相关文章
更多- Hive新旧jar包冲突引起的错误java.lang.NoSuchFieldError: info
- org.apache.zookeeper.server.NIOServerCnxn - Thread Thread[main,5,main] died java.lang.NoSuchFieldError: AuthFailed
- 基于Flume的美团日志收集系统(一)架构和设计
- Apache Flume 简介
- 基于Flume的美团日志收集系统(二)改进和优化
- flume-ng+Kafka+Storm+HDFS 实时系统搭建
- Flume+Kafka+Strom基于分布式环境的结合使用
- flume写入Hadoop hdfs报错 Too many open files
- java.lang.OutOfMemoryError: Java heap space 的解决方案
- Java错误:java.lang.OutOfMemoryError: Java heap space
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)