请帮忙看下,我调整了mysql的连接时间,还是会出现上述问题。有没有啥办法解决?

io.debezium.DebeziumException: org.apache.kafka.connect.errors.ConnectException: Snapshotting of table account_gateway.third_data failed at com.ververica.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.execute(MySqlSnapshotSplitReadTask.java:120) ~[flink-connector-mysql-cdc-2.2.0.jar:2.2.0] at com.ververica.cdc.connectors.mysql.debezium.reader.SnapshotSplitReader.lambda$submitSplit$0(SnapshotSplitReader.java:117) ~[flink-connector-mysql-cdc-2.2.0.jar:2.2.0] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_144] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_144] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_144] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_144] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144] Caused by: org.apache.kafka.connect.errors.ConnectException: Snapshotting of table account_gateway.third_data failed at com.ververica.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.createDataEventsForTable(MySqlSnapshotSplitReadTask.java:263) ~[flink-connector-mysql-cdc-2.2.0.jar:2.2.0] at com.ververica.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.createDataEvents(MySqlSnapshotSplitReadTask.java:191) ~[flink-connector-mysql-cdc-2.2.0.jar:2.2.0] at com.ververica.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.doExecute(MySqlSnapshotSplitReadTask.java:150) ~[flink-connector-mysql-cdc-2.2.0.jar:2.2.0] at com.ververica.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.execute(MySqlSnapshotSplitReadTask.java:115) ~[flink-connector-mysql-cdc-2.2.0.jar:2.2.0] ... 6 more Caused by: java.sql.SQLException: Can not read response from server. Expected to read 72,413 bytes, read 24,872 bytes before connection was unexpectedly lost. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.21.jar:8.0.21] at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.21.jar:8.0.21] at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.21.jar:8.0.21] at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) ~[mysql-connector-java-8.0.21.jar:8.0.21] at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003) ~[mysql-connector-java-8.0.21.jar:8.0.21] at com.ververica.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.createDataEventsForTable(MySqlSnapshotSplitReadTask.java:228) ~[flink-connector-mysql-cdc-2.2.0.jar:2.2.0] at com.ververica.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.createDataEvents(MySqlSnapshotSplitReadTask.java:191) ~[flink-connector-mysql-cdc-2.2.0.jar:2.2.0] at com.ververica.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.doExecute(MySqlSnapshotSplitReadTask.java:150) ~[flink-connector-mysql-cdc-2.2.0.jar:2.2.0] at com.ververica.cdc.connectors.mysql.debezium.task.MySqlSnapshotSplitReadTask.execute(MySqlSnapshotSplitReadTask.java:115) ~[flink-connector-mysql-cdc-2.2.0.jar:2.2.0] ... 6 more

展开
收起
雪哥哥 2022-10-30 07:40:51 383 分享 版权
阿里云 AI 助理回答

遇到这个错误,主要是因为在使用 Apache Flink 的 MySQL CDC(Change Data Capture)连接器时,在尝试对表 account_gateway.third_data 进行快照读取(snapshotting)时发生了失败。具体原因指向了与MySQL数据库的连接问题,导致无法从服务器读取预期数量的数据。

以下是一些可能的解决步骤:

  1. 检查网络连接:确保Flink作业运行的环境与MySQL数据库之间的网络是稳定的,没有防火墙或网络策略阻止或限制了连接。

  2. MySQL服务器资源:检查MySQL服务器是否有足够的资源(CPU、内存、磁盘I/O)来处理请求。资源不足可能导致连接被意外中断。

  3. 超时设置:查看并调整你的连接器配置中的超时设置,例如connect.timeout.msnetwork.timeout.ms,增加这些值可能会帮助避免因短暂的网络波动而引起的连接中断。

  4. MySQL连接器版本:确认你使用的MySQL连接器版本(在这个案例中是mysql-connector-java-8.0.21)与你的MySQL服务器版本兼容,并且是最新的稳定版。有时候,更新到最新版本的连接器可以解决已知的问题。

  5. 数据表状态:检查表account_gateway.third_data是否处于正常状态,没有锁、损坏或者正在进行的大规模DDL操作,这些都可能导致快照读取失败。

  6. 日志详细级别:增加Flink和Debezium的日志详细级别到DEBUG或TRACE,以便收集更多关于失败的具体信息。这有助于诊断问题所在。

  7. 并发度设置:如果并发度设置得过高,可能会对MySQL服务器造成过大压力,适当降低Flink作业的并发度设置看看是否有所改善。

如果以上步骤不能解决问题,建议查阅Flink社区论坛、GitHub issue页面或Apache Debezium的相关文档,看是否有其他用户遇到过类似问题及其解决方案。同时,考虑提交一个issue,附上详细的错误日志和配置信息,以获得更专业的帮助。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理