余老师带你学习大数据框架全栈第十一章Flink第一节基本概念

Flink基本概念

基本概念

1、Flink程序的基础构建模块是流(streams)与转换(transformations),流就是指输入,转换就是指对输入的数据进行的操作。
2、每一个数据流起始于一个或多个source,并终止于一个或多个sink。
下面的图是一个典型的由Flink程序映射为Streaming Dataflow的示意图,env就是运行环境或者是上下文,addSource (new FlinkKafkaConsumer)就是指通过Flink消费Kafka作为数据输入,就是Source。然后将输入的数据开始转换,先进行map对每一条数据进行parse,之后对每个stats做id的聚合,时间窗口的操作,时间窗口聚合函数。addSink就是将处理好的数据继续落地,为其他业务提供数据。
在这里插入图片描述

我们的输入、转换、Sink的时候是可以并行的,Flink是支持并行的。比如说,我们对Source可以进行分区,把一个Source拆分成子任务,然后对每个分区进行map。map之后继续进行转换,按照key进行聚合,窗口操作等等。然后再添加到Sink。
在这里插入图片描述

3、时间窗口
4、流上的聚合需要由窗口来划定范围,比如“计算过去的5分钟”或者“最后100个元素的和”
5、窗口通常被区分为不同的类型,比如滚动窗口(没有重叠),滑动窗口(有重叠),以及会话窗口(由不活动的间隙所打断)
在这里插入图片描述

Flink分布式运行环境

基本架构

1、Flink是基于Master-Slave风格的架构,经典的主从架构
2、Flink集群启动时,会启动一个JobManager进程、至少一个TaskManager进程
在这里插入图片描述

JobManager:Flink系统的协调者,它负责接受Flink Job,调度组成Jon的多个Task的执行;收集Job的状态信息,并管理Flink集群中从节点TaskManager
TaskManager:实际负责执行计算的Worker,在其上执行Flink Job的一组Task;TaskManager负责管理其所在节点上的资源信息,如内存、磁盘、网络,在启动的时候将资源的状态向JobManager汇报
Clinet:用户提交一个Flink程序时,会首先创建一个Client,该Client首先会对用户提交的Flink程序进行预处理,并提交到Flink集群;Client会将用户提交的Flink程序组装一个JobGraph,并且是以JobGraph的形式提交的

详细学习内容可观看Spark快速大数据处理扫一扫~~~或者引擎搜索Spark余海峰
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45810046/article/details/113652880