0


升到Flink版本到1.15.0

升到Flink版本到1.15.0

由于业务要求需要把Flink从1.13.1升级到1.15版本;原本想着很快就能完成升级,结果还是碰到了不少问题,此处Mark一下。

一、升级前准备

首先回顾一下使用了Flink的什么能力;

1、使用了DataStream、TableAPI、FlinkSQL;

2、Connector方面,使用了Jdbc、Kafka、UpsertKafka、Hive几个Connector;

3、Format方面,使用了Json、Csv、Avro、Debezium;新业务上还需要支持Ogg格式;

确定计划为:下载Flink release安装包,根据之前的业务和新增的业务补充其他JAR包,最后对目前的应用代码进行Flink版本的更改;

二、升级步骤

1、Flink release直接上官网下载就好,1.15版本的安装包甚至默认有TableAPI和FlinkSQL的JAR包了;

2、Format方面也很顺利,直接把包下载下来放到lib目录下就OK;

3、去官网下载flink-connector-kafka-1.15.0.jar、flink-sql-connector-hive-2.2.0_2.12-1.15.0.jar,flink-connect-jdbc等JAR包并上传到flink1.15的lib目录下;

4、更新代码的Flink版本,在POM中把Flink改为1.15.0版本,重新打包放到集群上运行。

三、碰到问题

问题1:Flink1.15.0已经必须在JAVA11环境下环境了,不再像以前1.13能在JAVA8和11之间兼容。

解决:在conf目录下的flink-conf.yaml通过env.java.home指定你JAVA11的JAVA_HOME。

问题1:Flink1.15.0部分的JAR包命名与1.13命名有区别
在这里插入图片描述以上为1.13版本的包
在这里插入图片描述

以上为1.15版本的包

像table的JAR包,从原来的flink-table-blink…….改为flink-table-planner…和flink-table-runtime……

connector包从原来带着scala版本的改为不带scala版本了。

解决:找JAR包时注意清楚版本和命名就OK了.

问题2:修改代码工程的Flink版本后报错Provider org.apache.flink.table.module.hive.HiveModuleFactory not a subtype

解决:由于pom中通过profiles保留了1.13和1.15两个配置,找包的时候会找到1.13的旧包,如下图后面直接就注释了1.13的配置

在这里插入图片描述

问题3:缺少HADOOP_CLASSPATH

此处我的解决方法是直接在flink脚本的第一行加入export HADOOP_CLASSPATH=

hadoop classpath

问题4:报错Exception in thread “Thread-5” java.lang.IllegalStateException: Trying to access closed classloader. Please check if you store classloaders directly or indirectly in static fields. If the stacktrace suggests that the leak occurs in a third party library and cannot be fixed immediately, you can disable this check with the configuration ‘classloader.check-leaked-classloader’.

虽然报错但其实不影响运行

解决:flink-conf.xml添加classloader.check-leaked-classloader: false

问题5:提交JAR包,用FLINKSQL写kafka时,报错

Caused by: java.lang.ClassNotFoundException: org.apache.kafka.clients.consumer.ConsumerRecord

解决:加入kafka-clients-2.8.1.jar

问题6:Could not find any factory for identifier ‘hive’ that implements ‘org.apache.flink.table.planner.delegation.ParserFactory’ in the classpath.

解决如下图:
在这里插入图片描述
问题7:

Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.mapred.JobConf

在lib目录下添加hadoop-mapreduce-client-core-3.0.0.jar

标签: flink big data kafka

本文转载自: https://blog.csdn.net/u012636124/article/details/125022683
版权归原作者 小梦叶 所有, 如有侵权,请联系我们删除。

“升到Flink版本到1.15.0”的评论:

还没有评论