Flink结构优化| 青训营笔记

这是我参与「第四届青训营 」笔记创作活动的的第10天

小总结

经过相应的改造和优化之后,Flink在架构设计上,针对 DataStream层、调度层、Shuffleservice层,均完成了对流和批的支持。 至此,业务已经可以非常方便地使用Flink解决流和批场景的问题了。

Flink 架构优化

流/批/OLAP业务场景概述

在实际生产环境中,针对不同的应用场景,我们对数据处理的要求是不同的:

  1. 有些场景下,只需离线处理数据,对实时性要求不高,但要求系统吞吐率高,典型的应用是 搜索引擎构建索引;
  2. 有些场景下,需对数据进行实时分析,要求每条数据处理延迟尽可能低,典型的应用是广告推荐、金融风控场景。

场景:

举个例子: 1.在抖音中,实时统计一个短视频的播放量、点赞数,也包括抖音直播间的实时观看人数等; 2.在抖音中,按天统计创造者的一些数据信息,比如 昨天的播放量有多少、评论量多少、广告收入多少;3.在抖音的一些推广活动中,运营同学需要对一些实时产出的结果数据做一些实时多维分析,来帮助后面活动的决策。

三种业务场景的的特点比对如下表:

image-20220802152825744

三种业务场景的解决方案的要求及带来的挑战: image-20220802194117477

三种业务场景可以用一套引擎的原因

通过前面的对比分析,可以发现: 1.批式计算是流式计算的特例,Everything is Streams,有界数据集(批式数据)也是一种数据流、 一种特殊的数据流; 2.而OLAP计算是一种特殊的批式计算,它对并发和实时性要求更高,其他情况与普通批式作业没 有特别大区别。 因此,理论上,我们是可以用一套引擎架构来解决上述三种场景,只不过需要对不同场景支持相应的扩展性、并允许做不同的优化策略。

Apache Flink 从流式计算出发,需要想支持 Batch和OLAP场景,就需要解决下面的问题:

image-20220803170515998

posted @ 2022-08-03 17:06  Luciferpluto  阅读(1)  评论(0)    收藏  举报  来源