这是我参与「第四届青训营 」笔记创作活动的第3天
关于流/批/OLAP 一体的 Flink 的介绍
Flink
首先 Flink 是一个分布式系统,需要有效分配和管理计算资源才能执行流式应用程序,同时是一款分布式的计算引擎,它可以用来做批处理,即处理静态的数据集、历史的数据集;也可以用来做流处理,即实时地处理一些实时数据流,实时地产生数据的结果;也可以用来做一些基于事件的应用。
这些JobManager、TaskManager、Dispatcher、JobMaster、ResourceManager;在课前因为第一次接触这些专有名词故很多东西都没有搞清楚代表什么意义,所以重新记录一次
JobManager:作业管理器,它决定何时调度下一个任务(或一组任务),对已完成的任务或执行失败做出反应,协调检查点,并协调故障恢复等。有三大组件。
- Dispatcher: 接收作业,拉起 JobManager 来执行作业,并在 JobMaster 挂掉之后恢复作业;
- JobMaster: 管理一个 job 的整个生命周期,会向 ResourceManager 申请 slot,并将 task 调度到对应 TM 上;
- ResourceManager:负责 slot 资源的管理和调度,Task manager 拉起之后会向 RM 注册; 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
TaskManager:任务管理器,执行数据流的任务,缓冲和交换数据流。
在执行引擎层(Runtime 层):执行引擎层提供了统一的 DAG,用来描述数据处理的 Pipeline,不管是流还是批,都会转化为 DAG 图,调度层再把 DAG 转化成分布式环境下的 Task,Task 之间通过 Shuffle 传输数据。不管是批处理还是流处理都是转换成DAG图,这一点很重要