Flink 入门 ----Flink基础概念

本篇只是简单介绍了下Flink的基础知识,属于扫盲入门篇

Flink 组件

Flink 入门 ----Flink基础概念_第1张图片

上图是Flink的整体组件构成

Deploy层

Flink的部署模式,包括本地模式,集群模式(YARN),云

PS:线上生产环境是以Yarn模式为主
Flink 入门 ----Flink基础概念_第2张图片

Runtime层

提供了支持Flink计算的全部核心实现,比如分布式Stream处理

API层

提供两种流处理的API

  1. 面向无界Stream的流处理
  2. 面向Batch的批处理API
应用框架层

CEP:事件处理模型
Table:类SQL操作
FlinkML:机器学习库

Flink自身优势

  1. 支持高吞吐,低延迟,高性能
  2. 支持高度灵活的窗口(Window)操作
  3. 支持有状态计算的Exactly-once语义
  4. 提供DataStream API和DataSet API
与SparkStream和Storm的对比

Flink 入门 ----Flink基础概念_第3张图片
Flink 入门 ----Flink基础概念_第4张图片

基本概念–流

  1. Flink程序的基础构建模块是流(streams)与转换(transformation)
    PS:a.流很好理解,就是所有元素组成的动态处理流水线
    b. 转换其实就是对流水线中的每个元素进行不停的变换。比如map,reduce等操作
  2. 每一个数据流起始于一个或多个source,并终止于一个或多个sink
    PS: source即数据流流入端 sink即接受端
    Flink 入门 ----Flink基础概念_第5张图片

从图中其实可以看到是一个流水线操作。transformation实际上就是元素的处理过程,又可以理解为“整容”
sink则是整个数据处理后的结果。
上述的整个过程可以类比与Java8 流处理中的中间操作(map,filter,reduce等)和终端操作(foreach,collect等)

Flink 入门 ----Flink基础概念_第6张图片

partition->shuffle->reduce过程

基本概念–时间窗口

重点:

  1. 滚动窗口(没有重叠)

  2. 滑动窗口 (有重叠)

  3. 会话窗口 (由不活动的间隙所打断)

Flink 入门 ----Flink基础概念_第7张图片

你可能感兴趣的:(Flink)