org/apache/kafka/common/serialization/ByteArrayDeserializer

前言

我在idea 项目中读取数据是可以的,但是项目打成jar在flink上运行报错。
刚开始以为是打jar 包的问题,最后发现是flink运行jar 缺少依赖。

java.lang.NoClassDefFoundError: org/apache/kafka/common/serialization/ByteArrayDeserializer
	at org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer.setDeserializer(FlinkKafkaConsumer.java:290)
	at org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer.<init>(FlinkKafkaConsumer.java:196)
	at org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer.<init>(FlinkKafkaConsumer.java:142)
	at org.apache.flink.streaming.connectors.kafka.table.KafkaDynamicSource.createKafkaConsumer(KafkaDynamicSource.java:358)
	at org.apache.flink.streaming.connectors.kafka.table.KafkaDynamicSource.getScanRuntimeProvider(KafkaDynamicSource.java:190)
	at org.apache.flink.table.planner.sources.DynamicSourceUtils.validateScanSource(DynamicSourceUtils.java:254)
	at org.apache.flink.table.planner.sources.DynamicSourceUtils.prepareDynamicSource(DynamicSourceUtils.java:71)
	at org.apache.flink.table.planner.plan.schema.CatalogSourceTable.toRel(CatalogSourceTable.java:101)
	at org.apache.calcite.rel.core.RelFactories$TableScanFactoryImpl.createScan(RelFactories.java:495)

在这里插入图片描述
解决办法: 报错的原因是kafka序列化的问题,在官网下载 kafka-client,然后放到flink 的lib目录下就可以了。
在这里插入图片描述
还有遇到一个问题,是读取mysql 数据 ,在本地能执行,但是打成jar 在服务器上不能运行,这个也怀疑是jar问题,maven 插件打成的可运行的jar 来放到服务器执行,也是不行,最终解决方案,是 打包不打依赖包,然后把 maven 中依赖的包全部放到flink 的 lib 下来运行。这样解决jar 冲突的问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值