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

简介: 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+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
4月前
|
JSON Java 数据格式
java调用服务报错400
java调用服务报错400
125 6
java调用服务报错400
|
4月前
|
JSON Java 数据格式
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
297 6
|
5月前
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
297 3
|
6月前
|
Android开发
复杂项目即时通讯从android 5升级android x后遗症之解决报错#79 java.io.EOFException Unexpected end of ZLIB input stream-优雅草卓伊凡|bigniu
复杂项目即时通讯从android 5升级android x后遗症之解决报错#79 java.io.EOFException Unexpected end of ZLIB input stream-优雅草卓伊凡|bigniu
392 4
复杂项目即时通讯从android 5升级android x后遗症之解决报错#79 java.io.EOFException Unexpected end of ZLIB input stream-优雅草卓伊凡|bigniu
|
11月前
|
SQL Java 数据库连接
【YashanDB知识库】个别数据库用户无法登录数据库,报错 io fail:IO.EOF
【YashanDB知识库】个别数据库用户无法登录数据库,报错 io fail:IO.EOF
|
11月前
|
运维 Cloud Native Java
postman发起post请求遇到报错:java.io.FileNotFoundException (文件名、目录名或卷标语法不正确。)
遇到bug报错,多猜可能的原因,控制变量反复测试,直至找到问题的关键,然后再思考如何解决或者回避。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来
|
Java Windows
【Azure Function】部署Java Function失败:报错deploy [ERROR] Status code 401和警告 'China North 3' may not be a valid region
1:deploy [ERROR] Status code 401, (empty body). 2: China North 3 may not be a valid region,please refer to https://aka.ms/maven_function_configuration#supported-regions for values. 3:  <azure.functions.maven.plugin.version>1.36.0</azure.functions.maven.plugin.version>
263 11
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
2996 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决

相关产品

  • 实时计算 Flink版