Flink背压问题之checkpoint超时如何解决

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。

问题一:有没有办法把flink Row类转换为Object

基于flink做二次开发中,需要将flink SQL执行结果打印到会话中,会话中执行结果打印流程固定打印List类型数据。 大部分查询引擎(比如presto)都会在ResultSet中提供getObject方法,flink中如何实现?*来自志愿者整理的flink邮件归档




参考答案:

你要的是这个功能么? 1.11 上已经支持了。

CloseableIterator result = Table#execute#collect()*来自志愿者整理的flink邮件归档



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

https://developer.aliyun.com/ask/371570?spm=a2c6h.13066369.question.56.6ad26382cVJayt



问题二:flinksql 输出到kafka用的fixed的方式 结果都输出到一个topic分区了

rt*来自志愿者整理的flink邮件归档



参考答案:

当 sink 的并发 小于 kafka partition 个数,同时 sink 并发只有一个时,FixPartitioner 会导致只会往一个分区发数据。 详见 FixPartitioner[1] 的实现,其中 parallelInstanceId 表示 subtask 的 编号,从0开始;partitions.length 表示该 topic 的分区个数, 最后返回该 subtask 应该往哪个分区发数据。

[1] https://github.com/apache/flink/blob/d00941c77170b233c9fe599c7fb0003778eb3299/flink-connectors/flink-connector-kafka/src/main/java/org/apache/flink/streaming/connectors/kafka/partitioner/FlinkFixedPartitioner.java#L75*来自志愿者整理的flink邮件归档



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

https://developer.aliyun.com/ask/371572?spm=a2c6h.13066369.question.59.6ad263822UfNUD



问题三:Flink cdc mysql 字段是datetime类型时0000-00-00 00:00:0

当我mysql字段时datetime并且字段值是0000-00-00 00:00:00时,会被转成1970-01-01T00:00,如果我应该如何操作才能保证跟原数值保持一致? 输出的结果: 2> (true,1,zhangsan,18,1970-01-01T00:00) 3> (true,2,lisi,20,2020-11-11T14:17:46) 4> (true,3,wangwu,99,1970-01-01T00:00) 1> (true,4,zhaoliu,77,1970-01-01T00:00) 日志信息: 2020-11-11 14:30:37,418 - 19755 WARN [debezium-mysqlconnector-mysql_binlog_source-snapshot] io.debezium.connector.mysql.MySqlValueConverters:852 - Invalid value '0000-00-00 00:00:00' stored in column 'rigist_time' of table 'test.boos' converted to empty value 2020-11-11 14:30:37,424 - 19761 WARN [debezium-mysqlconnector-mysql_binlog_source-snapshot] io.debezium.connector.mysql.MySqlValueConverters:852 - Invalid value '0000-00-00 00:00:00' stored in column 'rigist_time' of table 'test.boos' converted to empty value 2020-11-11 14:30:37,424 - 19761 WARN [debezium-mysqlconnector-mysql_binlog_source-snapshot] io.debezium.connector.mysql.MySqlValueConverters:852 - Invalid value '0000-00-00 00:00:00' stored in column 'rigist_time' of table 'test.boos' converted to empty value*来自志愿者整理的flink邮件归档



参考答案:

写个 UDF 再把 1970-01-01T00:00 转回去?*来自志愿者整理的flink邮件归档



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

https://developer.aliyun.com/ask/371573?spm=a2c6h.13066369.question.60.6ad26382eU1aCc



问题四:背压问题排查疑问求解

flink项目的DAG如图: http://apache-flink.147419.n8.nabble.com/file/t1014/Dingtalk_20201111100815.jpg ,job任务每晚高峰期就会出现背压问题,checkpoint超时。图中,a,b,c全部出现背压,d,e,f正常,根据 背压排查思路 http://www.whitewood.me/2019/11/03/Flink-%E5%8F%8D%E5%8E%8B%E5%88%86%E6%9E%90%E5%8F%8A%E5%A4%84%E7%90%86/ ,应该c是根源,奇怪的是查看c的metrics(outPoolUsage、inPoolUsage 、floatingBuffersUsage、exclusiveBuffersUsage ),数据显示都是0,是不是可以理解c自身处理能力导致了背压了呢,至于gc这块,差不多跑一天左右,gc次数1400左右,还有逻辑场景里,基本是keyby->window->reduce这种,中间涉及到了Set集合存储用户id,Map存储耗时和次数(主要用来计算99line,95line,将耗时时间作为key,同时间的记录数做value,减少集合大小),还有数据倾斜这块,a的并行度给kafka的partation一致,而且a,b,c,d,e,f的subtasks基本均衡,整个运行期间也没出现异常信息,像这种现象,该如何定位到问题点呢*来自志愿者整理的flink邮件归档



参考答案:

按照你描述,出问题的是def中任意1个或多个。不会是c的问题哈。*来自志愿者整理的flink邮件归档



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

https://developer.aliyun.com/ask/371576?spm=a2c6h.13066369.question.61.6ad26382tacJRj



问题五:flink tm cpu cores设置

flink on yarn per模式,tm能设置cpu cores的数量吗?*来自志愿者整理的flink邮件归档



参考答案:

设置yarn.containers.vcores这个参数就可以了*来自志愿者整理的flink邮件归档



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

https://developer.aliyun.com/ask/371579?spm=a2c6h.13066369.question.62.6ad263826P22nL

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
1月前
|
存储 监控 算法
Flink 四大基石之 Checkpoint 使用详解
Flink 的 Checkpoint 机制通过定期插入 Barrier 将数据流切分并进行快照,确保故障时能从最近的 Checkpoint 恢复,保障数据一致性。Checkpoint 分为精确一次和至少一次两种语义,前者确保每个数据仅处理一次,后者允许重复处理但不会丢失数据。此外,Flink 提供多种重启策略,如固定延迟、失败率和无重启策略,以应对不同场景。SavePoint 是手动触发的 Checkpoint,用于作业升级和迁移。Checkpoint 执行流程包括 Barrier 注入、算子状态快照、Barrier 对齐和完成 Checkpoint。
142 20
|
3月前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
294 61
|
4月前
|
分布式计算 监控 大数据
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
121 0
|
6月前
|
关系型数据库 MySQL 数据处理
实时计算 Flink版产品使用问题之mini-cluster模式下,怎么指定checkpoint的时间间隔
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
存储 监控 Serverless
Serverless 应用的监控与调试问题之Flink对于Checkpoint Barrier流动缓慢的问题要如何解决
Serverless 应用的监控与调试问题之Flink对于Checkpoint Barrier流动缓慢的问题要如何解决
|
6月前
|
缓存 流计算
美团 Flink 大作业部署问题之根据已存在的 Checkpoint 副本进行增量的副本制作如何实现
美团 Flink 大作业部署问题之根据已存在的 Checkpoint 副本进行增量的副本制作如何实现
|
1月前
|
消息中间件 关系型数据库 MySQL
Flink CDC 在阿里云实时计算Flink版的云上实践
本文整理自阿里云高级开发工程师阮航在Flink Forward Asia 2024的分享,重点介绍了Flink CDC与实时计算Flink的集成、CDC YAML的核心功能及应用场景。主要内容包括:Flink CDC的发展及其在流批数据处理中的作用;CDC YAML支持的同步链路、Transform和Route功能、丰富的监控指标;典型应用场景如整库同步、Binlog原始数据同步、分库分表同步等;并通过两个Demo展示了MySQL整库同步到Paimon和Binlog同步到Kafka的过程。最后,介绍了未来规划,如脏数据处理、数据限流及扩展数据源支持。
199 0
Flink CDC 在阿里云实时计算Flink版的云上实践
|
2月前
|
存储 关系型数据库 BI
实时计算UniFlow:Flink+Paimon构建流批一体实时湖仓
实时计算架构中,传统湖仓架构在数据流量管控和应用场景支持上表现良好,但在实际运营中常忽略细节,导致新问题。为解决这些问题,提出了流批一体的实时计算湖仓架构——UniFlow。该架构通过统一的流批计算引擎、存储格式(如Paimon)和Flink CDC工具,简化开发流程,降低成本,并确保数据一致性和实时性。UniFlow还引入了Flink Materialized Table,实现了声明式ETL,优化了调度和执行模式,使用户能灵活调整新鲜度与成本。最终,UniFlow不仅提高了开发和运维效率,还提供了更实时的数据支持,满足业务决策需求。
zdl
|
3月前
|
消息中间件 运维 大数据
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
212 56
|
3月前
|
SQL 运维 数据可视化
阿里云实时计算Flink版产品体验测评
阿里云实时计算Flink基于Apache Flink构建,提供一站式实时大数据分析平台,支持端到端亚秒级实时数据分析,适用于实时大屏、实时报表、实时ETL和风控监测等场景,具备高性价比、开发效率、运维管理和企业安全等优势。

相关产品

  • 实时计算 Flink版