flume —— java.lang.AbstractMethodError: org.apache.avro.specific.SpecificFixed.getSchema/或者其他init问题

昨天使用flume的avrosource的时候遇到这个问题,也从网上查了一下,

基本上都在强调avro包版本问题。

的确有这个可能,但可能性很小,除非你flume下载后你直接覆盖了lib里原生依赖。

然后我去框架下lib看了一下arvo版本1.7.4(flume版本是1.9.0),然后去官网看了一下原生包也是1.7.4.

所以我就pass掉了这个解释。

然后仔细看一下报错问题,error类型的确一样,去github上追了一下源码,初始化调用方法getSchema和一些其他初始化配置,所以可以确定在初始化的时候就出现了问题。

觉得的确是缺少avro的运行环境,所以对比了一下github上内部引用包,比flumelib内多一个avro-compile(具体叫啥忘了),然后从maven下一个扔进去了。依然没啥用。

所以抛弃了是flume引用arvo问题,看配置文件里还调用了哪些,看到自定义拦截器(小伙伴解决不了,我接手,所以才看到拦截器。)

后去git上下了此拦截器,发现内部集成了各种与CDP(CDH)的环境,但的确没有avro环境。

瞬间就明白了。此问题是flume调用自定义拦截器,数据输入的时候,拦截器需要认识avro类型数据流,所以调用环境内没有此依赖就会报这个错。pom加上avro-1.7.4(与flumelib版本要兼容,最好就一致)。

打包放进lib替换掉原来的拦截器后,成功运行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值