这是我参与「第四届青训营 」笔记创作活动的第2天
1. Flink概述
1.1 大数据
大数据指无法在—定时间内用常规软件工具对其进行获取、存储、管理和处理的数据集合。
特点:价值化、海量化、快速化、多样化
大数据计算架构发展史:Oracle-Hadoop-Spark-Flink(批式计算-流式计算)
1.2 Why Flink
a. Exactly-Once 精确一次的计算语义
b. Checkpoint 状态容错
c. Dataflow编程模型
d.流批一体
2. Flink架构
2.1 Flink分层架构
1.SDK层:SQL/Table、DataStream、Python
2.执行引擎层(Runtime层):执行引擎层提供统一的DAG来描述数据处理的 Pipeline,不管是流还是批都会转化为DAG图。调度层再把 DAG转化成分布式环境下的Task,Task 之间通过Shuffle传输数据
3.状态存储层:负责存储算子的状态信息
4.资源调度层:支持部署在多种环境
2.2 Flink整体架构
Flink集群核心组件:
1.JobManager (JM):负责整个任务的协调工作,包括调度task、触发协调Task 做Checkpoint、协调容错恢复等
2.TaskManager (TM):负责执行一个DataFlowGraph 的各个task 以及data streams 的 buffer和数据交换
2.3 Flink的流批一体
批式计算是流式计算的特例,有界数据集(批式数据)也是一种特殊的数据流。Apache Flink主要从以下几个模块来做流批─体:
1. SQL层;
2.DataStream APIl层统一,批和流都可以使用DataStream API来开发;
3. Scheduler层架构统—,支持流批场景;
4. Failover Recovery层架构统一,支持流批场景;
5. Shuffle Service层架构统一,针对不同的分布式计算框架,选择基于文件的Pull Based Shuffle或基于Pipeline的Push Based shuffle。
3. Flink OLAP
3.1 Flink做OLAP的优势
a. 引擎统一:降低学习成本,提高开发效率,提高维护效率
b. 既有优势:内存计算、Code-gen、Popeline Shuffle、Session模式的MPP架构
c. 生态支持:跨数据源查询支持、TCP-DS基准测试性能强
3.2 Flink OLAP场景的挑战
a. 秒级和毫秒级的小作业
b. 作业频繁启停,资源碎片
c. Latency 与 QPS 的要求