【极数系列】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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl