Flink报错问题之Flink报错java.io.EOFException: SSL peer shut down incorrectly如何解决

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: Flink报错通常是指在使用Apache Flink进行实时数据处理时遇到的错误和异常情况;本合集致力于收集Flink运行中的报错信息和解决策略,以便开发者及时排查和修复问题,优化Flink作业的稳定性。

问题一:Flink报错Can not retract a non-existent record. This should never happen.

Flink报错Can not retract a non-existent record. This should never happen.



参考答案:

通常有以下三种原因,可以按照以下方式进行处理:

问题原因①:由代码中now()导致。因为TopN不支持非确定性的排序字段,now()每次输出的值不同,所以导致Retraction会找不到之前的值。

解决方法:Event Time或源表中一个具有Processing Time属性的字段。

问题原因②: table.exec.state.ttl参数值设置过小。

解决方法:设置过小的TTL参数使用默认配置,或调大参数值。

问题原因③:上游使用CDC Connector,hologres全增量一体源表 并不是一致性的读取,全量数据和增量数据之前是有overlap的,导致处理binlog一开始的 update_before 的时候,会发现该数据在state中不存在。(预计弹内vvr-6.0.2,云上4.0.15修复)

绕过方法:显式配置上table.exec.source.cdc-events-duplicate: true的作业参数,显式增加去重节点保证数据的一致性。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/476346?spm=a2c6h.13066369.question.21.6f064d5cc9KP97



问题二:实时计算Flink报错DateTimeParseException: Text 'xxx' could not be parsed

实时计算Flink报错DateTimeParseException: Text 'xxx' could not be parsed



参考答案:

可参考QA:报错:DateTimeParseException: Text 'xxx' could not be parsed



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/475317?spm=a2c6h.13066369.question.24.6f064d5cJ7C8oF



问题三:实时计算Flink报错java.io.EOFException: SSL peer shut down incorrectly

实时计算Flink报错java.io.EOFException: SSL peer shut down incorrectly



参考答案:

可参考QA:报错:java.io.EOFException: SSL peer shut down incorrectly



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/475319?spm=a2c6h.13066369.question.23.6f064d5c1h1iXx



问题四:实时计算Flink报错The connector is trying to read binlog xxx use a snapshot when needed.

实时计算Flink报错The connector is trying to read binlog xxx use a snapshot when needed.



参考答案:

该报错的原因是作业处理的速度追不上binlog产生的速度,导致正在读的位点被清理了。 目前只能清理状态重启。

● 场景1: rds做了内部迁移操作,flink jar作业使用mysql cdc消费mysql数据。

报错原因:是作业处理的速度追不上mysql binlog 产生的速度,导致正在读的位点被清理了。
排查思路:

先确认rds的地址和binlog文件位点和迁移前是否一致:

(1)rds 地址不会变化

(2)如果节点有变化,binlog文件位点会变化。如果是从远程拉取的oss中的binlog,binlog是固定的。

解决方案:
(1)重新读取:flink cdc不会到oss上拉文件,是直链mysql服务器(无状态重启)。
(2)绕行方案:从只读库拉取数据。 
注意事项:
(1)从库读是支持的,从库延时比主库大点。注意RDS MySQL 5.6不支持,5.7之后的版本都支持,因为RDS MySQL 5.6 只读实例的binlog文件是简化过的,没有数据。
(2)主库风险也还好,flink cdc 只有读的权限,不会加锁和写的权限。如果rds配置了HA,即多主实例,用户同时开启了GTID,然后通过VIP/DNS下挂rds的几个多主实例地址,这样flink cdc /canal 这些同步工具通过访问 VIP/DNS 链接rds时才能实现不中断。

● 场景2:RDS有日志保留策略,最长18个小时,最大占用30%存储空间,两个条件谁先满足都会触发删除,如果写入特别多,超过30%的存储空间,可能binlog日志1小时就删除了。注意:rds页面上还有一个7天的binlog文件保存,这个是rds后台转存到oss上的,flink cdc目前是没有去转存后oss上去读取这些文件的。

● 场景3:volvo通过只读实例消费CDC数据,RDS的只读实例不保证binlog(本地只保留10s,上传oss),所以flink cdc侧不建议连接 RDS 的只读实例。只读实例一旦作业 Failover 10s 内恢复不过来,就会有这个异常只读实例判定,rr开头的就是只读实例rm开头的就是正常的实例。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/475542?spm=a2c6h.13066369.question.26.6f064d5ceYixTj



问题五:实时计算Flink报错org.codehaus.janino.CompilerFactory cannot be cast to org.codehaus.commons.compiler.ICompilerFactory

实时计算Flink报错org.codehaus.janino.CompilerFactory cannot be cast to org.codehaus.commons.compiler.ICompilerFactory



参考答案:

可参考QA:报错:java.lang.ClassCastException: org.codehaus.janino.CompilerFactory cannot be cast to org.codehaus.commons.compiler.ICompilerFactory



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/475322?spm=a2c6h.13066369.question.25.6f064d5cwDPCdl

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
24天前
|
Java 开发工具 流计算
flink最新master代码编译出现Java Runtime Environment 问题
在尝试编译Flink源码时遇到Java运行时环境致命错误:EXCEPTION_ACCESS_VIOLATION。问题出现在JVM.dll+0x88212。使用的是Java 11.0.28和Java HotSpot(TM) 64-Bit Server VM。系统为Windows客户端,没有生成核心dump文件。错误日志保存在hs_err_pid39364.log和replay_pid39364.log。要解决这个问题,建议检查JDK版本兼容性,更新JDK或参照错误报告文件提交Bug至http://bugreport.java.com/bugreport/crash.jsp。
|
28天前
启动报错:java.nio.charset.MalformedInputException: Input length = 1
启动报错:java.nio.charset.MalformedInputException: Input length = 1
16 0
|
1月前
|
Java 编译器
有关电脑中idea编译报错问题java: No implementation was created for AdminUserConverter due to having a problem in
有关电脑中idea编译报错问题java: No implementation was created for AdminUserConverter due to having a problem in
33 0
|
16天前
|
Java Maven
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
35 3
|
15天前
|
Java 应用服务中间件 Maven
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
13 1
|
18天前
|
存储 Java 数据库连接
java使用mp持久化框架,写入5000个字符,但是VARCHAR(255) 会报错
使用Java的MyBatis Plus框架时,如果尝试将超过VARCHAR(255)限制的字符串(如5000个字符)存入数据库,会抛出异常。解决方法是将列类型改为TEXT。可通过在实体类属性上添加`@TableField(typeHandler = JdbcType.CLOB)`注解,如`private String content;`,将属性映射到CLOB类型列,以存储更长字符串。
9 0
|
1月前
|
Java 关系型数据库 MySQL
Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
【2月更文挑战第33天】Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
52 2
|
1月前
|
XML Java 数据库连接
mybatis报错:java.lang.IllegalArgumentException: Mapped Statements collection does not contain
mybatis报错:java.lang.IllegalArgumentException: Mapped Statements collection does not contain
13 0
|
1月前
|
存储 Java 数据处理
|
1月前
|
Java API
java中IO与NIO有什么不同
java中IO与NIO有什么不同

相关产品

  • 实时计算 Flink版