[发明专利]一种提升Flink实时计算框架数据处理效率的方法在审
申请号: | 202111471776.8 | 申请日: | 2021-12-06 |
公开(公告)号: | CN114385348A | 公开(公告)日: | 2022-04-22 |
发明(设计)人: | 张璐波;王全福;谢巍盛 | 申请(专利权)人: | 天翼电子商务有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 102200 北京市昌平*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 提升 flink 实时 计算 框架 数据处理 效率 方法 | ||
本发明公开了一种提升Flink实时计算框架数据处理效率的方法,包括以下步骤:S1.检测Kafka分区个数是否大于flink申请task实例个数;S2.Flink task任务再均衡优化;通过Flink任务再均衡方法,可以显著提高实时计算的吞吐量并降低端到端的处理时延,避免flink在数据处理阶段存在较多的cpu浪费;以下将对每个步骤的实现过程做详细说明。本发明解决了现有Flink Streaming实时计算框架中在处理数据过程中遇到的部分task实例空闲,造成CPU资源浪费的问题;通过检测Kafka分区个数是否大于flink申请task实例个数,并对出现task实例空闲的情况进行任务再均衡优化,显著提高了资源利用率,进而增加了系统处理吞吐量、降低处理时延。
技术领域
本发明涉及大数据实时计算处理领域,特别涉及一种提升Flink实时计算框架数据处理效率的方法。
背景技术
Flink是业界具有低处理时延、高吞吐量、精确一次性语义的分布式实时计算框架,可以处理多种数据源中的数据,目前最常用的数据源是Kafka消息中间件;
根据kafka数据源分区数量及flinksourcetask数量,其处理模型分别如下:
(a)kafkapartitions==flinkparallelism,一个flinktask实例读取一个kafka分区数据,如图3所示;
(b)kafkapartitionsflinkparallelism,一个flinktask实例读取一个kafka分区数据,多余的flinktask4实例将处于空闲,如图4所示;
(c)kafkapartitionsflinkparallelism,部分flinktask实例将处理多个kafka区数据,如图5所示;对于场景b,Flink读取数据时task4实例处于空闲状态导致该部分资源未能充分利用。而在实际的业务处理中,为了达到更高的处理吞吐量及低时延,一般会分配较多的物理资源,这也造成了flink在数据源读取阶段存在较多的cpu浪费。
发明内容
本发明要解决的技术问题是克服现有技术的缺陷,提供一种提升Flink实时计算框架数据处理效率的方法。
本发明提供了如下的技术方案:
本发明提供一种提升Flink实时计算框架数据处理效率的方法,包括以下步骤:
S1.检测Kafka分区个数是否大于flink申请task实例个数;
S2.Flinktask任务再均衡优化;
通过Flink任务再均衡方法,可以显著提高实时计算的吞吐量并降低端到端的处理时延,避免flink在数据处理阶段存在较多的cpu浪费;以下将对每个步骤的实现过程做详细说明:
(1)FlinkJobManager获取待读取Kafka分区信息及Flink任务并行度;
(2)若kafkapartitions=flinkparallelism,flink按模型a,c处理;否则进入步骤(3);
(3)对预读取的Kafka分区按待处理数据量大小进行排序,并计算分区数据量中位数及每个分区数据量与中位数的比值N(不够整数则向上取整数);
(4)对于每个kafka分区预分配一个Flinktask,保证至少有一个task去处理对应分区的数据;
(5)对于剩余的flinktask实例,按数值N划分给对应的Kafka分区。
与现有技术相比,本发明的有益效果如下:
1.本案解决了现有FlinkStreaming实时计算框架中在处理数据过程中遇到的部分task实例空闲,造成CPU资源浪费的问题;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼电子商务有限公司,未经天翼电子商务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111471776.8/2.html,转载请声明来源钻瓜专利网。