青训营笔记之--流/批/OLAP 一体的 Flink 引擎介绍
“这是我参与「第四届青训营 」笔记创作活动的第1天”
1.BigData:4个V(Value/Volumes/Velocity/Variety)
2.Spark:批处理处理模式,Spark Streaming把一个无限流切成无限个小的批,不断调度小的作业。
3.在图中的三个框架中,Streaming:Native:一条一条处理,实时性更高。mini-batch:微批的处理。 Flink不再依赖Web系统,直接利用引擎。 可以看出,SQL的支持在大数据框架的处理中很重要,极大减少业务迭代速度,对业务维护成本较低。
4.Flink:分布式处理引擎,支持状态的计算(unbounded and bounded data streams:基于无界和有界数据集),可处理流和批数据,状态不易丢失,可恢复之前的数据。
6.左边:Flink依赖数据存储引擎,前三个消息队列,数据库Redis。Flink可高效的存储数据。
中间:Flink内部架构设计
最下面:部署的模式(在自己的pc、物理端、虚拟机、框架(Yarn)、K8s做部署)
最上面:一些框架。
7.Flink支持Python,可将SQL\DataStream\pyFlink都转化为DAG API.可通过Shufftle Services做数据交互。
8.Flink整体架构有两个核心组件,JM和TM。SDK一些业务逻辑首先在Client处理,提交给JM,转换成真正可以运行的物理执行图,给TM结点执行。
9.addSource--读一个数据源,从FlinkKafkaConsumer中读取。解析逻辑:基本单位String,map---一对一的解析处理,每一条数据后会调用一个parse,将空格拆开,拆成event格式。keyBy--按照单词做分发,同一个单词分发。addSink---把数据写到某个地方。打印输出。
10.为了更高效地分布式处理,Flink尽可能将不同的operator链接(chain)在一起形成Task,每一个Task可在一个线程中执行,内部叫做OperatorChain。在题目中,source和map算子可以在一起。
11.在上图中,Flink是一个流式引擎,有内存计算、Pipeline框架,特殊流式计算,更加灵活的调度运算,可插拔式,不同场景使用不同的Services运算。
12.Scheduler:将逻辑的低级图转换为一个物理执行图,并作相应的调度。将作业的DAG转换为在分布式环境的Task
13.(All_EDGES_BLOCKING)BLOCKING模式:A产生的数据不会立马发给B,写入文件磁盘,A1执行--资源释放--B2执行,切成不同的pipeline region.PIPELINE模式:A1产生的数据存在内存,释放,发给B1(流的模式)。
14.Shuffle Service交互,
15.流作业Shuffle和Task绑定,同销毁;批作业,释放资源,但Shuffle还存在
16.OLAP Engine:特殊的批式计算,Short query for extreme performaance
17.Flink还需: