Flink|青训营笔记

50 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第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转化成分布式环境下的TaskTask 之间通过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 的要求