Flink原理

视频地址:https://www.bilibili.com/video/BV1YB4y1q7Bw/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=824d8f61906b474c0974b8dce18a69fd

1. Flink简介

image-20230426093024641

总结与思考⭐

1)flink被阿里收购,用于双十一大屏等顶级项目,每天处理超过万亿数据,性能经得起考验

image-20230426094429186

2.1 传统数据处理架构

image-20230426103654551

2.2 大数据Lambda架构

image-20230426110038162

2.3 流处理架构

流处理框架.png

2.4 Flink是理想的流计算框架

image-20230606144922924

image-20230606144953090

2.5 Flink的优势

image-20230426151342296

2.6 FLINK架构

image-20230426114958036

2.7 总结与思考⭐

1)传统架构-->Lambda架构-->流处理架构,流处理架构可能是未来的主流架构;

2)传统架构缺点:不易扩展,数据库直接影响业务系统;

3)Lambda架构缺点:需要维护实时/离线两套系统和代码,运维成本较高

4)流处理架构的优势:包含批处理;不用存储中间数据;高吞吐,高性能,低延迟

3.Flink中的统一数据处理

image-20230426153503385

总结与思考⭐

1)有界数据集:有边界的数据集;数据静止不变,处理方式一般是批处理

2)无界数据集:没有边界的数据集;一般为实时数据,容易出现先产生的数据后到达的错乱问题,复杂度高于批处理

2)有界和无界数据集可以相互转换,比如限定某个时间段的无界数据集就是有界数据集

4.Flink技术栈/工作原理和编程模型

总结与思考⭐

1)Flink工作原理:FLink程序通过JobCLient将任务提交到JobManager,JobManager负责协调和分配资源,资源分配完成后,任务会分配响应的TaskManager,TaskManager会启动一个线程开始执行taskSlot,taskManager会更新任务执行的状态,并将成功与否返回给JobClient

2)Flink编程模型:底层流接口-->核心(DataStrem/DataSetl API)-->TableAPI-->SQL

核心API:是对底层流接口的集成,并且提供的底层的处理函数。用户通过核心PAI自由处理一个或多个的流处理事件,并且适用一致容错状态

TableAPI:以二维表为中心,提供select/join/group by等操作,表达能力不如核心API

核心API和TableAPI可以无缝切换,混合使用

SQL:更高级接口,通过SQL语言实现,表达能力语法与TableAPI类似

5.FLink的应用程序结构

总结与思考⭐

1)Flink程序的结构包含:数据源(Source)-->数据转换(Transformation)-->数据输出(Sink),类似数据的ETL

2)Source/Transformation/Sink都包含不同的类型

6.FLink编程语言的选择

image-20230426173557572

总结与思考⭐

1)scala编写的Flink程序拥有最佳的性能

7.1 基础环境

image-20230426173821431

7.2 下载安装文件

image-20230426173851760

7.3 配置相关文件

7.4 FLink和Hadoop的交互

image-20230426174907252

8.开发FLink程序

8.1 安装编译打包工具Mavan

8.2 开发批处理程序

image-20230426180357474

8.3 开发流处理程序

image-20230606144635525

image-20230606144655983

image-20230606144718467

image-20230426181143591

9.总结⭐

image-20230426181214463

posted @ 2023-07-03 08:59  付十一。  阅读(19)  评论(0)    收藏  举报