flink基本知识
区分流处理和批处理
- 流处理需要支持低延迟,Exactly-once(仅一次消费)
- 批处理需要支持高吞吐,高效处理
flink的定义
flink完全支持流处理,看待输入数据流是无界的.批处理看成是特殊的流处理,其输入数据流看成是有界的
flink组件栈(从下到上)
- delopy(部署层)
- 部署模式有本地模式,集群模式(Standalone/YARN),云模式(GCE,EC2),常用
YARN模式 yarn是脱胎于Hadoop的资源管理器,为上层应用提供统一的资源管理和调度
- 部署模式有本地模式,集群模式(Standalone/YARN),云模式(GCE,EC2),常用
- core(核心层,提供flink的计算实现)
- api(流或批量数据的API)
- libraries(flink封装的满足特定应用的计算框架,分为面向流和面向批处理的)
flink优势
- 支持高吞吐,低延迟(毫秒级),高性能的流处理
- 支持窗口操作(滑动窗口,滚动窗口,SESSION窗口)
- 支持有状态计算的Exactly-once语义
- 提供DataStream和DataSet的API
flink基本概念和编程模型
- flink基础构建模块是
流(streams,表示输入)与转换(transformations,对输入的操作) - 每一个数据流起始于一个或多个
source,终止于一个或多个sink(数据落地) - 一个
source可以拆分成多个source,用于分开计算 - 时间窗口
- 流的聚合需要使用
窗口划定范围(因为流是无界的),窗口可以是5分钟,100个元素 - filnk支持
滚动窗口(窗口之间没有数据重叠),滑动窗口(窗口之间有数据重叠),会话窗口
- 流的聚合需要使用
flink分布式运行环境
- flink基于Master-Slave(主从架构)
- flink集群启动,会启动一个
JobManager和至少一个TaskManagerJobManager是flink集群的协调者,接收flink job,调度组成job的多个task的执行
收集Job状态信息,管flink集群的从节点的TaskManagerTaskManager是执行计算的Worker,执行flink job的一组task
负责管理当前节点的资源信息(内存,磁盘,网络),启动的时候将资源状态报告JobManager.Client用户提交一个flink程序,就会创建一个Client.Client对用户的flink程序预处理后提交到flink集群
Client将用户提交的Flink程序组装成JobGraph,并以JobGraph提交
- 本文标题:flink基本知识
- 创建时间:2022-01-20 17:57:26
- 本文链接:article/tools/flink/basic-knowledge/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论