这是我参与「第四届青训营 」笔记创作活动的的第2天
课前
1.目标
- Flink概念
- 整体架构
- 架构优化
2.各种大数据技术概念
- 谷歌的三驾马车: 耳熟能详的
mapreduce,googlefilesstem,bigtable- MapReduce : 个人经过看博客等介绍,
MapReduce是一个编程模型 & 计算的框架,其中map的函数能够针对一部分数据进行计算,这样数据就会被切分。MapReduce计算框架为每一个数据块分配一个函数去进行计算,实现分布式计算。其中最强大的点就是shuffle的过程,分布式计算将不同服务器上的相关的数据合并到一起进行计算。- 流式计算:对数据流进行处理,是实时计算。批量计算则统一收集数据,存储到数据库中,然后对数据进行批量处理的数据计算方式。
- Flink:核心是一个流式的数据流执行引擎 ,提供流处理和批处理
课中
大数据?
无法在一定时间内用常规的软件工具进行获取、存储、管理、处理的 数据集合
Flink的诞生
为了解决上述的问题,谷歌发布了三个论文:分布式、Map Reduce、离线计算
但是这只是一个开头,对于 实时性、流计算、流批一体的需求,Flink应运而生
流式计算
- 实时计算,相当快速
- 无限流、动态、没有边界
- 流批一体
Flink的分层架构
SDK层:比如说供用户提供的SQL、DataStream、Python
执行引擎层:将流或者是批数据转化为
DAG图, 调度将DAG图转化成分布式环境下的Task ,通过shuffle传输数据状态存储层: 存储算子的状态信息
资源调度层:部署在多种环境
Flink整体架构
总体流程:
Client端将用户的代码进行处理成为DAG- 将逻辑的执行图提交给
JMJM将逻辑的执行图转换成物理的执行图- 进行
Task调度
流批一体
批处理:不是实时的,比如进行看视频,一天内收集数据然后对这一批数据进行统计然后处理
流处理:实时计算、延迟很低在秒级内
\