大数据| 青训营笔记

64 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第2天

大数据

无法在一定时间内用常规软件工具对其进行获取、存储、和管理和处理的数据集合。

Flink整体架构

Flink分层架构: 1、SDK层:SQL/Table、DataStream、Python 2、执行引擎层(Runtime层):执行引擎层提供了统一的DAG用来描述数据处理的Pipeline,不管是流还是批,都会转化为DAG图,调度层再把DAG转化成分布式环境下的Task,Task之间通过Shuffle传输数据。 3、状态存储层:负责存储算子的状态信息 4、资源调度层:目前Flink可以支持部署在多种环境。

一个Flink集群,主要有:JobManager(JM)和TaskManager(TM)

批式计算是流式计算的特例,有界数据集(批式数据)也是一种数据流、一种特殊的数据流。

Flink如何做到流批一体

Flink主要从以下几个模块做到流批一体: 1、SQL层 2、DataStream API层统一,批和流都可以使用DataStream API来开发 3、Scheduler层架构统一,支持流批场景; 4、Failover Recovery层架构统一,支持流批场景; 5、Shuffle Service层架构统一,流批场景选择不同的Shuffle Service 在分布式计算中,用来连接上下游数据交互的过程叫做Shuffle;实际上,分布式计算中所有涉及到上下游衔接的过程,都可理解为Shuffle

流和批Shuffle之间的差异

1、Shuffle数据的生命周期:流作业的Shuffle数据与Task是绑定的,而批作业的Shuffle数据与Task是解耦的 2、Shuffle数据存储介质:流作业的生命周期比较短,而且流作业为了实时性,Shuffle通常存储在内存中,批作业因为数据量比较大以及容错的需求,一般会存储在磁盘里 3、Shuffle的部署方式:流作业Shuffle服务和计算节点部署在一起,可以减少网络开销,从而减少latency,而批作业则不同。