文章目录
一. 报错现象
flink sql任务是:mysql到hdfs的离线任务,flink在消费mysql时报如上错误。
根据经验:mysql 8.x版本会将Timestamp数据类型转换为localdatetime类型,而flink 连接器中并未做此适配,导致任务消费数据后,类型转换报错。
解决方案有两种:
- flink 连接器兼容mysql 8.x,
- 找到mysql 8.x驱动所在的连接器,去掉mysql 8.x驱动。
这里先尝试使用第二种方案。
二. 方案二:重新编译打包flink-connector-cdc
1. 排查脚本
在flink lib目录下查找含有mysql8驱动的jar
#!/usr/bin/env bash
ls | while read one_line
do
class_name=$(jar -vtf $one_line |grep 'com/mysql/cj/jdbc/Driver.class')
if [[ ${
class_name}x != "x" ]]; then
echo "jar:$one_line contains the ${class