Flink CDC中这个报错如何解决,cdc2.4,flink1.6,mysql8;
Flink SQL> select * from mysql_binlog;
[ERROR] Could not execute SQL statement. Reason:
java.lang.ClassCastException: cannot assign instance of com.ververica.cdc.connectors.shaded.com.fasterxml.jackson.databind.ObjectMapper to field com.ververica.cdc.connectors.mysql.table.MySqlDeserializationConverterFactory$2.val$objectMapper of type com.fasterxml.jackson.databind.ObjectMapper in instance of ...
以下是一些可能与 Flink CDC、Flink 和 MySQL 版本不兼容相关的问题以及相应的解决方案:
报错信息:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown system variable 'tx_isolation'
解决方案:这种错误可能是由于 MySQL 8 不再支持 tx_isolation 系统变量引起的。建议将 Flink CDC 的 MySQL 连接 URL 中的 tx_isolation 配置设置为 SERIALIZABLE 或删除该配置。
报错信息:java.lang.UnsupportedOperationException: Cannot create a TypeInformation for a class that is not a POJO: class org.apache.flink.types.Row
解决方案:这种错误可能是由于 Flink CDC 2.4 和 Flink 1.6 不支持使用 Row 类型作为返回类型引起的。建议将返回类型更改为 POJO 类型,或者将 Flink 升级到支持 Row 类型的版本。
疑似flink sql mysql connector 和 flink mysql connector冲突了,一般统一用flink sql connector。可能是打包JAR时,把依赖打进去了。要么就是打包时不要打Connector的依赖,要么就是lib里不要留Connector的依赖,二选一。此回答整理至钉群“Flink CDC 社区”
应该是在执行 SQL 语句时出现了类型转换异常。具体来说,它指出无法将 com.ververica.cdc.connectors.shaded.com.fasterxml.jackson.databind.ObjectMapper
类型的实例分配给 com.ververica.cdc.connectors.mysql.table.MySqlDeserializationConverterFactory$2.val$objectMapper
类型的字段。
可能是由于Flink CDC版本与 MySQL 版本不兼容导致的。可以尝试升级或降级 Flink CDC 版本,或者升级 MySQL 版本来解决这个问题。也要可以检查 Flink SQL 中是否正确配置了 MySQL 连接器参数,例如用户名、密码、主机名等。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。