【极数系列】Flink详细入门教程 知识体系 学习路线(01)

2024-01-29 09:12

本文主要是介绍【极数系列】Flink详细入门教程 知识体系 学习路线(01),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

01 引言

​ 1.最近工作中接触到相关的风控项目,里面用到Flink组件做相关的一些流数据或批数据处理,接触后发现确实大数据组件框架比之传统应用开发,部署,运维等方面有很大的优势;

​ 2.工作中遇到不少问题,可惜当时没有形成文档记录的习惯,不少宝贵的经验久而久之就忘了,所以开个**博客专栏《极数系列》**记录Flink以及大数据相关笔记,也是时刻提醒自己需要不断学习。

​ 3.学习任何框架之前还是需要对这个框架有些许了解,才好快速入门以及给后续进阶打基础,参考Flink官网最新的1.18版本文档,整理了下Flink框架相关的一些知识体系与架构,诸君共勉!

​ 4.相关网址:

​ Flink官网:https://flink.apache.org/

​ Flink版本:https://flink.apache.org/blog/

​ Flink文档:https://ci.apache.org/projects/flink/flink-docs-release-1.12/

​ Flink代码库:https://github.com/apache/flink

02 Flink是什么

2.1 Flink简介

2.2 Flink架构

1.无边界和有边界的数据

2.应用程序部署选择

3.应用程序运行模式

4.内存状态

2.3 Flink应用场景

1.事件驱动型应用

2.数据分析应用

3.数据管道应用

2.4 Flink运维

1.怎么保证7 * 24小时稳定运行?

2.怎么升级、迁移、暂停、恢复应用?

03 Flink环境搭建

3.1 Flink服务端环境搭建

1.Linux环境搭建

2.docker容器化环境搭建

3.2 Flink部署模式

1.本地单机模式部署

2.Standalone独立集群部署

3.HA高可用集群部署

4.Yarn部署

3.3 Flink开发环境搭建

1.idea开发工具配置

2.Flink依赖引入

3.maven使用 shade 插件构建包

4.Flink高级配置

04 Flink数据类型以及序列化

4.1 数据类型

1.Java元组和Scala案例类

2.Java POJO

3.原生数据类型

4.常规类型

5.数据值

6.Hadoop数据类型

7.特殊类型

4.2 数据序列化

1.状态数据结构升级

2.自定义状态数据序列化

3.自定义序列化器

05 Flink DataStream API

5.1 执行模式

1.流模式

2.批模式

5.2 事件时间Watermark

1.Watermark简介

2.Watermark策略

5.3 自定义Functions

1.如何自定义?

2.定制累加器和计数器

5.4 状态与容错

1.状态计算

2.广播状态模

3.快照Checkpointing

4.状态管理器

5.5 应用程序参数处理

5.6 ParameterTool工具读取配置

5.7 flink 程序中使用参数

5.8 Java Lambda 表达式

5.9 执行配置

06 Flink数据源Source

6.1 核心组件

1.分片

2.源阅读器

3.分片枚举器

6.2 流处理和批处理的统一

1.有界File Source

2.无界File Source

6.3 Data Source API

1.SplitEnumerator

2.SourceReader

3.Source 使用方法

6.4 SplitReader API

1.SplitReader

2.SourceReaderBase

3.SplitFetcherManager

6.5 事件时间和水印

1.事件时间戳

2.水印生成

07 Flink窗口函数

7.1 窗口简介

7.2 窗口生命周期

1.分组函数

2.窗口分配器

  • 滚动窗口
  • 滑动窗口
  • 会话窗口
  • 全局窗口

7.3 窗口函数

1.ReduceFunction 函数

2.AggregateFunction 函数

3.ProcessWindowFunction 函数

4.增量聚合ProcessWindowFunction 函数

5.在 ProcessWindowFunction 中使用 per-window state

6.WindowFunction(已过时)

7.4 Triggers 触发器

1.触发与清除(Fire & Purge)

2.WindowAssigner 默认的 Triggers

3.内置 Triggers 和自定义 Triggers

7.5 Evictors数据剔除器

  • CountEvictor
  • DeltaEvictor
  • TimeEvictor

7.6 数据延迟处理

1.旁路输出

2.建议

7.7 窗口数据结果获取

1.连续窗口操作

2.水印与窗口的交互

7.8 多个数据流合并

1.滚动合并

2.滑动合并

3.会话合并

4.Interval Join间隔合并

7.9 Process Function 函数

7.10 I/O异步操作

1.异步操作简介

2.超时处理

3.结果顺序

4.事件时间

5.容错保证

6.重试支持

7.实现方案

8.警告&注意事项

08 Table API & SQL

8.1 简介

1.什么是Table API ?可以做什么?

2.什么是Table SQL?可以做什么?

8.2 通用api

1.Table API 和 SQL 程序的结构

2.创建 TableEnvironment

3.在 Catalog 中创建表

4.查询表

5.输出表

6.翻译与执行查询

7.查询优化

8.解释表

8.3 流式概念

1.什么是流式概念?

2.动态表

3.流上的确定性

4.时间属性

5.时态表

6.Temporal Table Function 函数

8.4 流式聚合

1.MiniBatch 聚合

2.Local-Global 聚合

3.拆分 distinct 聚合

4.在 distinct 聚合上使用 FILTER 修饰符

8.5 数据类型

Data TypeRemarks for Data Type
CHAR
VARCHAR
STRING
BOOLEAN
BINARY
VARBINARY
BYTES
DECIMALSupports fixed precision and scale.
TINYINT
SMALLINT
INTEGER
BIGINT
FLOAT
DOUBLE
DATE
TIMESupports only a precision of 0.
TIMESTAMP
TIMESTAMP_LTZ
INTERVALSupports only interval of MONTH and SECOND(3).
ARRAY
MULTISET
MAP
ROW
RAW
Structured typesOnly exposed in user-defined functions yet.

8.6 时区

1.TIMESTAMP vs TIMESTAMP_LTZ

2.时区的作用

3.时间属性和时区

4.夏令时支持

8.7 函数

1.函数

2.系统内置函数

3.自定义函数

8.8 存储过程

1.存储过程类

2.Call方法

3.类型推导

8.9 模块

1.模块类型

2.模块生命周期

3.命名空间

4.如何加载,卸载和使用模块

8.10 Catalogs

1.Catalogs类型

2.创建于注册到Catalog

3.Catalog API

4.Table API 与 SQL Client 如何操作?

5.Catalog Modification Listener

6.Catalog Store 持久化

8.11 Flink JDBC Driver

1.依赖

2.JDBC POOL连接池

3.支持语言

8.12 SQL客户端

1.简介

2.安装部署

3.配置

8.13 SQL gateway

1.简介

2.如何启动与执行作业

3.REST Endpoint 交互

4.HiveServer2 Endpoint 交互

09 Table API

1.数据查询&过滤

2.列操作

3.分租聚合操作

4.联表操作

5.排序、偏移量,限制操作

6.插入

7.窗口分组操作

8.Over Windows

9.基于行生成多列输出的操作

10 SQL

1.简介

2.Flink sql 部署安装

3.Queries 查询

4.CREATE 语句

5.DROP 语句

6.ALTER 语句

7.INSERT 语句

8.ANALYZE 语句

9.DESCRIBE 语句

10.TRUNCATE 语句

11.EXPLAIN 语句

12.USE 语句

13.SHOW 语句

14.LOAD 语句

15.UNLOAD 语句

16.SET 语句

17.RESET 语句

18.JAR 语句

19.JOB 语句

20.UPDATE 语句

21.DELETE 语句

22.CALL 语句

11 DataStream连接器

11.1 数据格式

1.Avro

2.Azure Table

3.Hadoop

4.Parquet

5.Text files

6.JSON

7.CSV

11.2 Data Source 和 Sink 的容错保证

11.3 支持的数据连接器

1.kafka数据连接器

2.Cassandra数据连接器

3.Cassandra数据连接器

4.DynamoDB 数据连接器

5.elasticsearch 数据连接器

6.Firehose 数据连接器

7.亚马逊 Kinesis 数据流 SQL

8.MongoDB 数据连接器

9.Opensearch 数据连接器

10.文件系统

11.RabbitMQ 连接器

12.Google Cloud PubSub

13.Hybrid 连接器

14.Apache Pulsar 连接器

15.JDBC 数据库连接器

12 Table API 连接器

13 Deployment部署

13.1 java兼容性

1.java 8

2.java 11

3.java 17

13.2 部署方式

1.Standalone

2.Native Kubernetes

3.YARN

13.3 配置参数

13.4 内存配置

13.5 弹性扩缩容

13.6 命令行界面

13.7 细粒度资源管理

13.8 File Systems

13.9 高可用

13.10 系统指标采集导出

13.11 安全认证

13.12 拓展

14 Flink debugging 调试

14.1调试窗口与事件时间

1.监控当前时间

2.处理散乱的事件时间

14.2 调试类加载

1.简介概述

2.倒置类加载

3.避免用户代码的动态类加载

4.手动进行用户代码的类加载

5.X cannot be cast to X 异常

6.卸载用户代码中动态加载的类

7.通过maven-shade-plugin解决与Flink的依赖冲突

14.3 火焰图

14.4 应用程序分析与调试

1.使用 Java Flight Recorder 分析

2.使用 JITWatch 分析

3.分析内存溢出(OOM)问题

4.分析内存和垃圾回收行为

15 Flink监控

15.1 快照监控

1.概览(Overview)选项卡

2.历史记录(History)选项卡

3.摘要信息(Summary)选项卡

4.配置信息(Configuration)选项卡

5.Checkpoint 详细信息

15.2 监控背压

16 Flink图API

16.1 简介概述

16.2 Graph API

16.3 图迭代器

16.4 图生成器

17 Flink机器学习

17.1 简介概述

17.2 机器学习算子

17.3 数据预处理

17.4 推荐算法

17.5 机器学习管道

18 Flink复杂事件处理

18.1 简介概述

18.2 Patterm API 使用

18.3 事件如何获取

18.4 应用实例展示

这篇关于【极数系列】Flink详细入门教程 知识体系 学习路线(01)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/656428

相关文章

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/