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学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
13天前
|
分布式计算 监控 大数据
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
43 0
|
2月前
|
关系型数据库 MySQL 数据处理
实时计算 Flink版产品使用问题之mini-cluster模式下,怎么指定checkpoint的时间间隔
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2月前
|
存储 监控 Serverless
Serverless 应用的监控与调试问题之Flink对于Checkpoint Barrier流动缓慢的问题要如何解决
Serverless 应用的监控与调试问题之Flink对于Checkpoint Barrier流动缓慢的问题要如何解决
|
2月前
|
缓存 流计算
美团 Flink 大作业部署问题之根据已存在的 Checkpoint 副本进行增量的副本制作如何实现
美团 Flink 大作业部署问题之根据已存在的 Checkpoint 副本进行增量的副本制作如何实现
|
2月前
|
分布式计算 流计算
美团 Flink 大作业部署问题之Checkpoint Replicate Service 跨 HDFS 集群的副本制作是如何实现的
美团 Flink 大作业部署问题之Checkpoint Replicate Service 跨 HDFS 集群的副本制作是如何实现的
|
2月前
|
流计算
美团 Flink 大作业部署问题之新启动作业的 Checkpoint 跨作业文件引用的问题要如何避免
美团 Flink 大作业部署问题之新启动作业的 Checkpoint 跨作业文件引用的问题要如何避免
|
11月前
|
存储 流计算
Flink Checkpoint所有配置解读
Flink Checkpoint所有配置解读
179 0
|
1月前
|
运维 数据处理 数据安全/隐私保护
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。
|
3月前
|
存储 监控 大数据
阿里云实时计算Flink在多行业的应用和实践
本文整理自 Flink Forward Asia 2023 中闭门会的分享。主要分享实时计算在各行业的应用实践,对回归实时计算的重点场景进行介绍以及企业如何使用实时计算技术,并且提供一些在技术架构上的参考建议。
779 7
阿里云实时计算Flink在多行业的应用和实践
|
2月前
|
SQL 消息中间件 Kafka
实时计算 Flink版产品使用问题之如何在EMR-Flink的Flink SOL中针对source表单独设置并行度
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

相关产品

  • 实时计算 Flink版