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

简介: 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+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日以线上峰会的形式与大家见面。
相关文章
|
分布式计算 监控 大数据
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
302 0
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
1027 61
|
存储 监控 算法
Flink 四大基石之 Checkpoint 使用详解
Flink 的 Checkpoint 机制通过定期插入 Barrier 将数据流切分并进行快照,确保故障时能从最近的 Checkpoint 恢复,保障数据一致性。Checkpoint 分为精确一次和至少一次两种语义,前者确保每个数据仅处理一次,后者允许重复处理但不会丢失数据。此外,Flink 提供多种重启策略,如固定延迟、失败率和无重启策略,以应对不同场景。SavePoint 是手动触发的 Checkpoint,用于作业升级和迁移。Checkpoint 执行流程包括 Barrier 注入、算子状态快照、Barrier 对齐和完成 Checkpoint。
2626 20
|
关系型数据库 MySQL 数据处理
实时计算 Flink版产品使用问题之mini-cluster模式下,怎么指定checkpoint的时间间隔
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
存储 监控 Serverless
Serverless 应用的监控与调试问题之Flink对于Checkpoint Barrier流动缓慢的问题要如何解决
Serverless 应用的监控与调试问题之Flink对于Checkpoint Barrier流动缓慢的问题要如何解决
|
缓存 流计算
美团 Flink 大作业部署问题之根据已存在的 Checkpoint 副本进行增量的副本制作如何实现
美团 Flink 大作业部署问题之根据已存在的 Checkpoint 副本进行增量的副本制作如何实现
140 0
|
流计算 Apache 存储
Flink Checkpoint 问题排查实用指南
本文会统一聊一聊 Flink 中 Checkpoint 异常的情况(包括失败和慢),以及可能的原因和排查思路。
Flink Checkpoint 问题排查实用指南
|
6月前
|
存储 分布式计算 数据处理
「48小时极速反馈」阿里云实时计算Flink广招天下英雄
阿里云实时计算Flink团队,全球领先的流计算引擎缔造者,支撑双11万亿级数据处理,推动Apache Flink技术发展。现招募Flink执行引擎、存储引擎、数据通道、平台管控及产品经理人才,地点覆盖北京、杭州、上海。技术深度参与开源核心,打造企业级实时计算解决方案,助力全球企业实现毫秒洞察。
649 0
「48小时极速反馈」阿里云实时计算Flink广招天下英雄
|
运维 数据处理 数据安全/隐私保护
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。

相关产品

  • 实时计算 Flink版