一种提升Flink实时计算框架数据处理效率的方法技术

技术编号:33199749 阅读:11 留言:0更新日期:2022-04-24 00:34
本发明专利技术公开了一种提升Flink实时计算框架数据处理效率的方法,包括以下步骤:S1.检测Kafka分区个数是否大于flink申请task实例个数;S2.Flink task任务再均衡优化;通过Flink任务再均衡方法,可以显著提高实时计算的吞吐量并降低端到端的处理时延,避免flink在数据处理阶段存在较多的cpu浪费;以下将对每个步骤的实现过程做详细说明。本发明专利技术解决了现有Flink Streaming实时计算框架中在处理数据过程中遇到的部分task实例空闲,造成CPU资源浪费的问题;通过检测Kafka分区个数是否大于flink申请task实例个数,并对出现task实例空闲的情况进行任务再均衡优化,显著提高了资源利用率,进而增加了系统处理吞吐量、降低处理时延。时延。时延。

【技术实现步骤摘要】
一种提升Flink实时计算框架数据处理效率的方法


[0001]本专利技术涉及大数据实时计算处理领域,特别涉及一种提升Flink实时计算框架数据处理效率的方法。

技术介绍

[0002]Flink是业界具有低处理时延、高吞吐量、精确一次性语义的分布式实时计算框架,可以处理多种数据源中的数据,目前最常用的数据源是Kafka消息中间件;
[0003]根据kafka数据源分区数量及flinksourcetask数量,其处理模型分别如下:
[0004](a)kafkapartitions==flinkparallelism,一个flinktask实例读取一个kafka分区数据,如图3所示;
[0005](b)kafkapartitions<flinkparallelism,一个flinktask实例读取一个kafka分区数据,多余的flinktask4实例将处于空闲,如图4所示;
[0006](c)kafkapartitions>flinkparallelism,部分flinktask实例将处理多个kafka区数据,如图5所示;对于场景b,Flink读取数据时task4实例处于空闲状态导致该部分资源未能充分利用。而在实际的业务处理中,为了达到更高的处理吞吐量及低时延,一般会分配较多的物理资源,这也造成了flink在数据源读取阶段存在较多的cpu浪费。

技术实现思路

[0007]本专利技术要解决的技术问题是克服现有技术的缺陷,提供一种提升Flink实时计算框架数据处理效率的方法。
[0008]本专利技术提供了如下的技术方案:
[0009]本专利技术提供一种提升Flink实时计算框架数据处理效率的方法,包括以下步骤:
[0010]S1.检测Kafka分区个数是否大于flink申请task实例个数;
[0011]S2.Flinktask任务再均衡优化;
[0012]通过Flink任务再均衡方法,可以显著提高实时计算的吞吐量并降低端到端的处理时延,避免flink在数据处理阶段存在较多的cpu浪费;以下将对每个步骤的实现过程做详细说明:
[0013](1)FlinkJobManager获取待读取Kafka分区信息及Flink任务并行度;
[0014](2)若kafkapartitions<=flinkparallelism,flink按模型a,c处理;否则进入步骤(3);
[0015](3)对预读取的Kafka分区按待处理数据量大小进行排序,并计算分区数据量中位数及每个分区数据量与中位数的比值N(不够整数则向上取整数);
[0016](4)对于每个kafka分区预分配一个Flinktask,保证至少有一个task去处理对应分区的数据;
[0017](5)对于剩余的flinktask实例,按数值N划分给对应的Kafka分区。
[0018]与现有技术相比,本专利技术的有益效果如下:
[0019]1.本案解决了现有FlinkStreaming实时计算框架中在处理数据过程中遇到的部分task实例空闲,造成CPU资源浪费的问题;
[0020]2.通过检测Kafka分区个数是否大于flink申请task实例个数,并对出现task实例空闲的情况进行任务再均衡优化,显著提高了资源利用率,进而增加了系统处理吞吐量、降低处理时延。
附图说明
[0021]附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:
[0022]图1是本专利技术的框架图;
[0023]图2是本专利技术的实施例示意图;
[0024]图3是本专利技术的flink模型a示意图;
[0025]图4是本专利技术的flink模型b示意图;
[0026]图5是本专利技术的flink模型c示意图。
具体实施方式
[0027]以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。其中附图中相同的标号全部指的是相同的部件。
[0028]实施例1
[0029]如图1

5,本专利技术提供一种提升Flink实时计算框架数据处理效率的方法,包括以下步骤:
[0030]S1.检测Kafka分区个数是否大于flink申请task实例个数;
[0031]S2.Flinktask任务再均衡优化;
[0032]通过Flink任务再均衡方法,可以显著提高实时计算的吞吐量并降低端到端的处理时延,避免flink在数据处理阶段存在较多的cpu浪费;以下将对每个步骤的实现过程做详细说明:
[0033](1)FlinkJobManager获取待读取Kafka分区信息及Flink任务并行度;
[0034](2)若kafkapartitions<=flinkparallelism,flink按模型a,c处理;如图3和图5所示,否则进入步骤(3);
[0035](3)对预读取的Kafka分区按待处理数据量大小进行排序,并计算分区数据量中位数及每个分区数据量与中位数的比值N(不够整数则向上取整数);
[0036](4)对于每个kafka分区预分配一个Flinktask,保证至少有一个task去处理对应分区的数据;
[0037](5)对于剩余的flinktask实例,按数值N划分给对应的Kafka分区。
[0038]进一步的,举例说明,如图2所示:
[0039]Kafka分区数量为3,数据量分别为
[0040]partition1=4,partition2=2,partition3=1
[0041]则中位数为2,各分区数据量与中位数的比值N(向上取整数):
[0042][0043]首先各分区预分配一个flinktask,剩余的3个task按N分配,如下
[0044]partition1=1+2=3 partition2=1+1=2
[0045]partition3=1。
[0046]最后应说明的是:以上所述仅为本专利技术的优选实施例而已,并不用于限制本专利技术,尽管参照前述实施例对本专利技术进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本专利技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本专利技术的保护范围之内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提升Flink实时计算框架数据处理效率的方法,其特征在于,包括以下步骤:S1.检测Kafka分区个数是否大于flink申请task实例个数;S2.Flink task任务再均衡优化;通过Flink任务再均衡方法,可以显著提高实时计算的吞吐量并降低端到端的处理时延,避免flink在数据处理阶段存在较多的cpu浪费;以下将对每个步骤的实现过程做详细说明:(1)Flink JobManager获取待读取Kafka分区信息及Flink任务并行度;(2)若ka...

【专利技术属性】
技术研发人员:张璐波王全福谢巍盛
申请(专利权)人:天翼电子商务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1