这是我参与「第四届青训营 」笔记创作活动的的第2天
前言:什么是Flink引擎?
Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。
流批OLAP一体的Flink引擎的思维导图
根据思维导图分为Flink概述,Flink整体架构,Flink架构优化,精选案例讲解四部分
为什么需要流式计算
大数据实时性价值更大, 而流式计算是实时计算,快速,低频率,无限流,动态 无边界,7*24持续运行
开源生态
Flink的分层架构
Flink的总体架构
为什么需要流批一体
-架构所存在的小问题
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如何做到流批一体。这俩部分是此节课程最为重要的重点。