牛(流)啤(批)的Flink引擎 | 青训营笔记

285 阅读2分钟

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

前言:什么是Flink引擎?

Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。

流批OLAP一体的Flink引擎的思维导图 image.png

根据思维导图分为Flink概述,Flink整体架构,Flink架构优化,精选案例讲解四部分

为什么需要流式计算

大数据实时性价值更大, 而流式计算是实时计算,快速,低频率,无限流,动态 无边界,7*24持续运行

开源生态

image.png

Flink的分层架构

image.png

Flink的总体架构

image.png

为什么需要流批一体

-架构所存在的小问题

1.人力成本比较高:批流两套系统,相同逻辑需要开发两遍.

2.数据链路冗余:本身计算内容是一致的, 由于是两套链路,相同逻辑需要运行两遍,产生一定的资源浪费.

3.数据口径不致: 两套系统两套算子、两套UDF,通常会产生不同程度的误差,这些误差会给业务方带来非常大的困扰。

流批一体的Scheduler层

-EAGER

所有的task会一起调度,集群需要有足够的资源

-LAZY

最小调度一个task即可,集群有一个slot资源可以运行

专有名词解释

-Scheduler层

调度层,负责多进程管理及调度、多线程管理及调度、多协程调度和维护业务实例的状态模型。当调度层收到用户接口层的请求后,委托Transaction层与本次操作相关的事务进行处理

-slot资源

TaskManager的固定大小资源的一个集合

-batch

卷积神经网络处理数据是分批处理的

-latency

完全执行一个指令所需的时钟周期

-pipeline模式

可以将任务的处理分解为若干个处理阶段,上一个阶段任务的结果交给下一个阶段来处理,这样每个线程的处理是并行的,可以充分利用资源提高计算效率。

总结: 第一部分Flink概述描述了流式计算以及Apache Flink的突出点, 第二部分是描述Flink分层结构和总体结构还有如何做到流批一体其中举一个Flink作业示例。第三部分解释为什么一套引擎可以解决三种场景以及如何支持OLAP场景。第四部分是精选案列的讲解

个人思考:个人认为Flink引擎最为重要的有俩点:一是Flink的分层以及总体架构。二是Flink如何做到流批一体。这俩部分是此节课程最为重要的重点。

image.png