1.概述

转载:Flink与Kafka版本对应关系

转载这个主要是上次做flink kafka版本升级,忘记记录了。

先上干货:以下为Flink和Kafka的版本对照表

Flink版本 Kafka版本
1.12.X 2.4.1
1.11.X 2.4.1
1.10.X 2.2.1
1.9.X 2.2.0
1.8.X 2.0.1
1.7.X 2.0.1
0.10.x 0.8.2.0
0.9.x 0.8.2.0

最近在使用Flink进行Kafka吞吐量测试时,遇到了以下问题导致程序无法运行
去网上查资料也没有很直接的解决方法,大致也就是说是Flink与Kafka的版本问题
目前Flink采用的是1.12.0版本,Kafka采用的是2.3.0版本

报错信息如下:

Exception in thread "main" org.apache.flink.runtime.client.JobExecutionException: Job execution failed.at org.apache.flink.runtime.jobmaster.JobResult.toJobExecutionResult(JobResult.java:146)at org.apache.flink.runtime.minicluster.MiniCluster.executeJobBlocking(MiniCluster.java:638)at org.apache.flink.streaming.api.environment.LocalStreamEnvironment.execute(LocalStreamEnvironment.java:123)at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1509)at lenrnflink.Te2.main(Te2.java:24)
Caused by: java.lang.NoSuchMethodError: org.apache.flink.api.common.serialization.DeserializationSchema.open(Lorg/apache/flink/api/common/serialization/DeserializationSchema$InitializationContext;)Vat org.apache.flink.streaming.connectors.kafka.internals.KafkaDeserializationSchemaWrapper.open(KafkaDeserializationSchemaWrapper.java:46)at org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase.open(FlinkKafkaConsumerBase.java:696)at org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:36)at org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:102)at org.apache.flink.streaming.runtime.tasks.StreamTask.openAllOperators(StreamTask.java:424)at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:290)at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)at java.lang.Thread.run(Thread.java:748)

pom.xml中关于Flink与Flink-Kafka连接器配置如下:

Exception in thread "main" org.apache.flink.runtime.client.JobExecutionException: Job execution failed.at org.apache.flink.runtime.jobmaster.JobResult.toJobExecutionResult(JobResult.java:146)at org.apache.flink.runtime.minicluster.MiniCluster.executeJobBlocking(MiniCluster.java:638)at org.apache.flink.streaming.api.environment.LocalStreamEnvironment.execute(LocalStreamEnvironment.java:123)at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1509)at lenrnflink.Te2.main(Te2.java:24)
Caused by: java.lang.NoSuchMethodError: org.apache.flink.api.common.serialization.DeserializationSchema.open(Lorg/apache/flink/api/common/serialization/DeserializationSchema$InitializationContext;)Vat org.apache.flink.streaming.connectors.kafka.internals.KafkaDeserializationSchemaWrapper.open(KafkaDeserializationSchemaWrapper.java:46)at org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase.open(FlinkKafkaConsumerBase.java:696)at org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:36)at org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:102)at org.apache.flink.streaming.runtime.tasks.StreamTask.openAllOperators(StreamTask.java:424)at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:290)at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)at java.lang.Thread.run(Thread.java:748)

网上说有可能是Kafka服务器与客户端Fetch版本不一致导致的,然后我经过检查发现服务器与客户端版本Fetch一致。

Exception in thread "main" org.apache.flink.runtime.client.JobExecutionException: Job execution failed.at org.apache.flink.runtime.jobmaster.JobResult.toJobExecutionResult(JobResult.java:146)at org.apache.flink.runtime.minicluster.MiniCluster.executeJobBlocking(MiniCluster.java:638)at org.apache.flink.streaming.api.environment.LocalStreamEnvironment.execute(LocalStreamEnvironment.java:123)at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1509)at lenrnflink.Te2.main(Te2.java:24)
Caused by: java.lang.NoSuchMethodError: org.apache.flink.api.common.serialization.DeserializationSchema.open(Lorg/apache/flink/api/common/serialization/DeserializationSchema$InitializationContext;)Vat org.apache.flink.streaming.connectors.kafka.internals.KafkaDeserializationSchemaWrapper.open(KafkaDeserializationSchemaWrapper.java:46)at org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase.open(FlinkKafkaConsumerBase.java:696)at org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:36)at org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:102)at org.apache.flink.streaming.runtime.tasks.StreamTask.openAllOperators(StreamTask.java:424)at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:290)at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)at java.lang.Thread.run(Thread.java:748)
 //客户端fetch版本,0-11,与服务器一致public static Schema[] schemaVersions() {return new Schema[]{FETCH_REQUEST_V0, FETCH_REQUEST_V1, FETCH_REQUEST_V2, FETCH_REQUEST_V3, FETCH_REQUEST_V4, FETCH_REQUEST_V5, FETCH_REQUEST_V6, FETCH_REQUEST_V7, FETCH_REQUEST_V8, FETCH_REQUEST_V9, FETCH_REQUEST_V10, FETCH_REQUEST_V11};}

想要去找Flink与Kafka的版本对应关系,发现并没有找到,偶然在Maven发现了线索
在Maven仓库网站https://mvnrepository.com/中,找到flink-connector-kafka的详情页面:https://mvnrepository.com/artifact/org.apache.flink/flink-connector-kafka


这里的依赖包与Flink版本一一对应,我们点击Version为1.12.0的链接进去,发现页面中有一列为:Compile Dependencies,里面是kafka-client的2.4.1的依赖


说明Flink1.12.0推荐的Kafka版本为2.4.1,但是我使用的Kafka为2.3.0,版本不一致,导致报错。
之后我把Kafka也升级到2.4.1,错误解决
这边建议各位在使用Flink中Kafka连接器的时候,去Maven仓库中查看一下依赖,选用匹配的Flink与Kafka版本,避免出现异常。

最终我们的是Flink主版本是 flink 1.12.4 但是我们的connect 是kafka-connect 1.11.0 这样改动量是最小的,也是支持kafka 0.10.0版本的。

M.扩展

flink引出的kafka不同版本的兼容性

【Flink】 Flink与Kafka版本对应关系相关推荐

  1. Flink与Kafka版本对应关系

    先上干货:以下为Flink和Kafka的版本对照表 Flink版本 Kafka版本 1.12.X 2.4.1 1.11.X 2.4.1 1.10.X 2.2.1 1.9.X 2.2.0 1.8.X 2 ...

  2. SpringBoot集成Kafka版本对应关系

    官网说明如下,怎么没有kafka版本,有没有大佬说下.

  3. flink DDL读取kafka数据-Scala嵌入DDL形式

    步驟: service firewalld stop(关闭防火墙) 啓動hadoop 離開安全模式 啓動zookeeper與kafka集羣 操作 命令 备注 查看topic $KAFKA/bin/ka ...

  4. 【Flink】flink并行度与kafka分区(partition)设置

    1.概述 默认: [Flink]FlinkConsumer是如何保证一个partition对应一个thread的 当分区与并行度不一样呢? 2.原理 采用取模运算:平衡 kafka partition ...

  5. Flink当中使用kafka Consumer

    Flink与kafka结合使用的三个优势: 第一:kafka可以作为Flink的Source和Sink来使用: 第二:Kafka的Partition机制和Flink的并行度机制可以深度结合,从而提高数 ...

  6. Flink DataStream读写Kafka

    Flink提供了Kafka连接器,用于从或向Kafka读写数据. 本文总结Flink与Kafka集成中的问题,并对一些疑点进行总结和梳理. 问题一: 读Kafka的方式 ## 读取一个Topic Fl ...

  7. Flink(1.12版本)

    spark 和 Flink 的对比:事件驱动.时间语义. 没有共享组: slot个数 = 最大算子的并行度 共享组: slot的个数 = 组内最大算子的并行度之和 一.Flink的重要特点 1.1 分 ...

  8. Flink的Sink_API_Demo (kafka sink 、redis sink 、es sink)

    文章目录 pom文件说明 说明 必要的前提 下面的代码,启动后手动往topic打入数据,该程序读出来,逻辑是通过split分割(盖戳),然后select分流,取applestream写入kafka指定 ...

  9. flink与flink-client的版本对应

    目前flink版本从0.6~1.14.0对应的flink-client版本有 无版本号,2.10,2.11,2.12这四种版本 无版本号对应flink(0.9版本和之前的版本)(一般都不会用到) 2. ...

最新文章

  1. Ubuntu14.04桥接网络设置与SSH登陆
  2. 前端实习生笔试_一道来自美图的实习生前端笔试算法题
  3. 生成私钥 p q rsa_【安全】理解 RSA 算法
  4. 怎样实现登录用户管理_如何编写程序实现图书管理系统里面的用户管理功能
  5. 线程创建方式3-实现 callable接口(Java)
  6. SVN客户端服务器搭建与使用(一)
  7. USB和串口的区别是什么?
  8. java IO流的概念理解
  9. 服务器维护实习生日记,电信网络维护部实习日记范文八篇
  10. Nacos源码系列之服务发现(二)
  11. 惠普CEO李艾科的“金刚钻儿”
  12. joomla 视频_Joomla的成年
  13. libev中ev_loop结构体中宏定义的理解
  14. GBase 8s灾备集群HAC (一) 概述
  15. Win10 清除 PowerShell 历史记录
  16. 中兴智能视觉大数据研发人脸识别门禁考勤机、精准的人脸识别对比
  17. SQL语句基础语法——简单的增,删,查,改
  18. Redis--个人记录
  19. 数据分析特辑 - 如何用Tableau做一个数据故事?
  20. Typora markdown公式换行等号对齐_Markdown快速入门教程

热门文章

  1. 格力接受美国5.83亿巨额罚款!官方紧急回应...
  2. 年初至今主动权益基金平均亏损2.96%
  3. 新希望:拟参与设立总规模40亿元的广西新希望生猪保供专项产业基金
  4. 首发天玑1200!Redmi电竞旗舰首曝:电池容量或超4500mAh
  5. 花2.9元买一包头绳,收到一张3元好评返现卡,我凌乱了……
  6. 华晨集团债务违约65亿 宝马中国:华晨宝马运营不受影响
  7. 三只松鼠回应产品含有丙烯酰胺一事:产品符合国家食品安全标准
  8. 疑似禁令影响开始显现:华为Mate 40量产或被迫推迟
  9. 苹果CarPlay新功能上线,老司机们更方便了
  10. 手机都能拍月亮了,为何我们还在怀念诺基亚?