flink1.12.x 教程目录 作者:马育民 • 2021-10-03 23:13 • 阅读:17343 # 基础 1. [flink1.12.x 介绍](https://www.malaoshi.top/show_1IX2NpEL27T0.html "flink1.12.x 介绍") 2. [flink1.12.x 目录结构](https://www.malaoshi.top/show_1IX1yaVaMJwT.html "flink1.12.x 目录结构") # 安装部署 ### local 单机模式 1. [flink1.12.x local单机模式-原理(图)](https://www.malaoshi.top/show_1IX1yqjIpOJC.html "flink1.12.x local单机模式-原理(图)") 1. [flink1.12.x local单机模式-安装部署、启动、测试wordcount(读写本地文件)](https://www.malaoshi.top/show_1IX1ym4bM6vu.html "flink1.12.x local单机模式-安装部署、启动、测试wordcount(读写本地文件)") 1. [flink1.12.x local单机模式-支持 HDFS(hadoop3)、测试wordcount(读写HDFS文件)](https://www.malaoshi.top/show_1IX1yld6ujqK.html "flink1.12.x local单机模式-支持 HDFS(hadoop3)、测试wordcount(读写HDFS文件)") ### standalone 独立集群模式 1. [flink1.12.x standalone独立集群模式-原理 和 服务器规划(图)](https://www.malaoshi.top/show_1IX1yaRlTBZL.html "flink1.12.x standalone独立集群模式-原理 和 服务器规划(图)") 2. [flink1.12.x standalone独立集群模式-安装部署(支持 HDFS)](https://www.malaoshi.top/show_1IX1yaSsGEPO.html "flink1.12.x standalone独立集群模式-安装部署(支持 HDFS)") 3. [flink1.12.x standalone独立集群模式-启动、停止](https://www.malaoshi.top/show_1IX1yaQAjAnI.html "flink1.12.x standalone独立集群模式-启动、停止") 5. [flink1.12.x standalone独立集群模式-开启历史服务(historyserver)](https://www.malaoshi.top/show_1IX1yYwSZuy9.html "flink1.12.x standalone独立集群模式-开启历史服务(historyserver)") 6. [flink1.12.x 启动、停止历史服务命令(historyserver)](https://www.malaoshi.top/show_1IX2O927kUp5.html "flink1.12.x 启动、停止历史服务命令(historyserver)") 6. [flink1.12.x standalone独立集群模式-测试wordcount(读写HDFS文件)](https://www.malaoshi.top/show_1IX1yqsSXTef.html "flink1.12.x standalone独立集群模式-测试wordcount(读写HDFS文件)") 4. [flink1.12.x 8081 web管理页面](https://www.malaoshi.top/show_1IX1yagCCEFk.html "flink1.12.x 8081 web管理页面") 6. [flink1.12.x 8082 历史服务web管理页面](https://www.malaoshi.top/show_1IX1yqoZBK4S.html "flink1.12.x 8082 历史服务web管理页面") ### flink on yarn模式 1. [flink on yarn:Per-Job模式、Session模式](https://www.malaoshi.top/show_1IX2SCp7FrHR.html "flink on yarn:Per-Job模式、Session模式") ##### per-job cluster模式 2. [flink1.12.x:per-job cluster模式(yarn-cluster)部署](https://www.malaoshi.top/show_1IX2OC9eHGnH.html "flink1.12.x:per-job cluster模式(yarn-cluster)部署") 3. [flink1.12.x per-job cluster模式(yarn-cluster)-测试SocketWindowWordCount](https://www.malaoshi.top/show_1IX2SAcIevhv.html "flink1.12.x per-job cluster模式(yarn-cluster)-测试SocketWindowWordCount") ##### session cluster模式 1. [flink1.12.x:session cluster模式部署](https://www.malaoshi.top/show_1IX2SbheZ7fI.html "flink1.12.x:session cluster模式部署") 2. [flink1.12.x:session cluster模式-测试wordcount](https://www.malaoshi.top/show_1IX2Sc2JODEG.html "flink1.12.x:session cluster模式-测试wordcount") # 命令 1. [flink1.12.x flink run 执行flink程序(per-job cluster模式)](https://www.malaoshi.top/show_1IX4D76vjB35.html "flink1.12.x flink run 执行flink程序(per-job cluster模式)") 2. [flink1.12.x flink run 执行flink程序(session cluster模式)](https://www.malaoshi.top/show_1IX4D7LFpdVp.html "flink1.12.x flink run 执行flink程序(session cluster模式)") 3. [flink1.12.x flink cancel停止flink任务命令](https://www.malaoshi.top/show_1IX49kuHXobu.html "flink1.12.x flink cancel停止flink任务命令") ### 其他 [yarn-session.sh命令参数](https://www.malaoshi.top/show_1IX2Sc3vdlQP.html "yarn-session.sh命令参数") [flink1.12.x flink run命令参数](https://www.malaoshi.top/show_1IX1zJh1NTTB.html "flink1.12.x flink run命令参数") # api 快速入门 1. [flink1.12.x api介绍](https://www.malaoshi.top/show_1IX1yv9g6Kou.html "flink1.12.x api介绍") - [flink1.12.x api执行流程](https://www.malaoshi.top/show_1IX429bexc2F.html "flink1.12.x api执行流程") 2. [flink1.12.x 创建第一个工程(修改maven settings.xml)](https://www.malaoshi.top/show_1IX1yxtyVbZ2.html "flink1.12.x 创建第一个工程(修改maven settings.xml)") 3. [flink1.12.x DataSet实现wordcount](https://www.malaoshi.top/show_1IX1yxw3kHh4.html "flink1.12.x DataSet实现wordcount") 4. [flink1.12.x 代码设置流模式、批模式、自动模式](https://www.malaoshi.top/show_1IX1z8zbwub0.html "flink1.12.x 代码设置流模式、批模式、自动模式") 5. [flink1.12.x DataStream实现wordcount- 连接socket(TCP)服务器-java写法](https://www.malaoshi.top/show_1IX1zF4hogxX.html "flink1.12.x DataStream实现wordcount- 连接socket(TCP)服务器-java写法") - [linux nc(tcp服务器)](https://www.malaoshi.top/show_1IX1z9MjKfRQ.html "linux nc(tcp服务器)") 6. [flink1.12.x DataStream实现wordcount- 连接socket(TCP)服务器-lambda写法](https://www.malaoshi.top/show_1IX1zINOeopJ.html "flink1.12.x DataStream实现wordcount- 连接socket(TCP)服务器-lambda写法") 7. [flink1.12.x DataStream实现wordcount- 连接socket(TCP)服务器-lambda简化写法](https://www.malaoshi.top/show_1IX1zIUWH7gR.html "flink1.12.x DataStream实现wordcount- 连接socket(TCP)服务器-lambda简化写法") ### 提交到 flink 服务器运行 1. [flink1.12.x 实现wordcount-上传到flink集群,flink run执行jar-连接socket(TCP)服务器](https://www.malaoshi.top/show_1IX4WimeL0dH.html "flink1.12.x 实现wordcount-上传到flink集群,flink run执行jar-连接socket(TCP)服务器") 2. [flink1.12.x 实现wordcount-上传到flink集群,flink run执行jar-读写HDFS文件](https://www.malaoshi.top/show_1IX1zJhEwK1C.html "flink1.12.x 实现wordcount-上传到flink集群,flink run执行jar-读写HDFS文件") 3. [flink1.12.x flink run命令参数](https://www.malaoshi.top/show_1IX1zJh1NTTB.html "flink1.12.x flink run命令参数") 4. [flink1.12.x 设置job名称](https://www.malaoshi.top/show_1IX23lIxbchv.html "flink1.12.x 设置job名称") 5. [flink1.12.x idea本地执行时启动webui服务](https://www.malaoshi.top/show_1IX44V9fRMan.html "flink1.12.x idea本地执行时启动webui服务") 6. [flink1.12.x 打印执行计划](https://www.malaoshi.top/show_1IX44YsfgaMT.html "flink1.12.x 打印执行计划") # 架构和概念 1. [flink1.12.x client、JobManager、TaskManager角色分工和执行流程(Dataflow)](https://www.malaoshi.top/show_1IX1zTwC5Ufj.html "flink1.12.x client、JobManager、TaskManager角色分工和执行流程(Dataflow)") 2. [flink1.12.x Task Slots 和 slot sharing共享slot](https://www.malaoshi.top/show_1IX1zXQ0QLYb.html "flink1.12.x Task Slots 和 slot sharing共享slot") 3. [flink1.12.x Streaming Dataflow并行原理(Partition、Subtask、Parallelism)](https://www.malaoshi.top/show_1IX1zUkxTDcm.html "flink1.12.x Streaming Dataflow并行原理(Partition、Subtask、Parallelism)") - [flink1.12.x 设置并行度(并发)、最大并发度](https://www.malaoshi.top/show_1IX44XYOJPop.html "flink1.12.x 设置并行度(并发)、最大并发度") 4. [flink1.12.x Streaming Dataflow:source、Transformation、sink和对应程序代码](https://www.malaoshi.top/show_1IX1zUWFcAGQ.html "flink1.12.x Streaming Dataflow:source、Transformation、sink和对应程序代码") 5. [flink1.12.x 相关概念:无界数据(无界流)和有界数据(有界流)、批计算和流式计算](https://www.malaoshi.top/show_1IX1zZa4VtBK.html "flink1.12.x 相关概念:无界数据(无界流)和有界数据(有界流)、批计算和流式计算") # api 详解 1. [flink1.12.x StreamExecutionEnvironment获取执行环境](https://www.malaoshi.top/show_1IX1zZwVzSfy.html "flink1.12.x StreamExecutionEnvironment获取执行环境") ### source数据源 1. [flink1.12.x source数据源介绍](https://www.malaoshi.top/show_1IX1zbfOROEU.html "flink1.12.x source数据源介绍") 2. [flink1.12.x source数据源-文件](https://www.malaoshi.top/show_1IX42IcUlcWU.html "flink1.12.x source数据源-文件") 3. [flink1.12.x source数据源-集合](https://www.malaoshi.top/show_1IX42IdqynGZ.html "flink1.12.x source数据源-集合") 4. [flink1.12.x source数据源-socket套接字](https://www.malaoshi.top/show_1IX42IdFArmW.html "flink1.12.x source数据源-socket套接字") 5. [flink1.12.x Connector连接器](https://www.malaoshi.top/show_1IX45D9TX5l9.html "flink1.12.x Connector连接器") 6. [flink1.12.x source数据源-kafka](https://www.malaoshi.top/show_1IX42KLVchYD.html "flink1.12.x source数据源-kafka") - [flink1.12.x kafka反序列化器JSONKeyValueDeserializationSchema](https://www.malaoshi.top/show_1IX45K305RdB.html "flink1.12.x kafka反序列化器JSONKeyValueDeserializationSchema") 7. [flink1.12.x 自定义source数据源-SourceFunction、ParallelSourceFunction、RichParallelSourceFunction](https://www.malaoshi.top/show_1IX42gf4g3Mt.html "flink1.12.x 自定义source数据源-SourceFunction、ParallelSourceFunction、RichParallelSourceFunction") ### 数据类型 1. [flink1.12.x 支持的数据类型](https://www.malaoshi.top/show_1IX42i64rQvh.html "flink1.12.x 支持的数据类型") ### Transformation 1. [flink1.12.x Transformation-map算子](https://www.malaoshi.top/show_1IX435Jamyv3.html "flink1.12.x Transformation-map算子") - [flink1.12.x Transformation-map、flatMap算子使用lambda表达式,返回tuple发生泛型擦除](https://www.malaoshi.top/show_1IX43otYmN7K.html "flink1.12.x Transformation-map、flatMap算子使用lambda表达式,返回tuple发生泛型擦除") 2. [flink1.12.x Transformation-filter算子](https://www.malaoshi.top/show_1IX435YAk9Li.html "flink1.12.x Transformation-filter算子") 3. [flink1.12.x Transformation-flatMap算子](https://www.malaoshi.top/show_1IX43FnVWLia.html "flink1.12.x Transformation-flatMap算子") 4. [flink1.12.x Transformation-keyBy算子](https://www.malaoshi.top/show_1IX43MKruM0s.html "flink1.12.x Transformation-keyBy算子") - [flink1.12.x Transformation-sum()求和](https://www.malaoshi.top/show_1IX43odGLjkJ.html "flink1.12.x Transformation-sum()求和") - [flink1.12.x Transformation-keyBy求最大值(max方法)](https://www.malaoshi.top/show_1IX43Red6x39.html "flink1.12.x Transformation-keyBy求最大值(max方法)") - [flink1.12.x Transformation-keyBy求最大值(maxBy方法)](https://www.malaoshi.top/show_1IX43RlMG5LG.html "flink1.12.x Transformation-keyBy求最大值(maxBy方法)") - [flink1.12.x max() 和 maxBy() 区别](https://www.malaoshi.top/show_1IX48Aq2yIsj.html "flink1.12.x max() 和 maxBy() 区别") - [flink1.12.x Transformation-reduce自定义聚合](https://www.malaoshi.top/show_1IX43doNvXFT.html "flink1.12.x Transformation-reduce自定义聚合") 5. [flink1.12.x Rich Function富函数](https://www.malaoshi.top/show_1IX45rHe2bEq.html "flink1.12.x Rich Function富函数") ### 重分区算子 1. [flink1.12.x 重分区算子-forward()](https://www.malaoshi.top/show_1IX44ZOFaE7X.html "flink1.12.x 重分区算子-forward()") 2. [flink1.12.x 重分区算子-rebalance()](https://www.malaoshi.top/show_1IX44C0OJcEa.html "flink1.12.x 重分区算子-rebalance()") 3. [flink1.12.x 重分区算子-global()](https://www.malaoshi.top/show_1IX44ZsRPBz5.html "flink1.12.x 重分区算子-global()") 4. [flink1.12.x 重分区算子-broadcast() 广播](https://www.malaoshi.top/show_1IX44a8HJjwn.html "flink1.12.x 重分区算子-broadcast() 广播") 5. [flink1.12.x 重分区算子-partitionCustom自定义分区](https://www.malaoshi.top/show_1IX44qdlvPYF.html "flink1.12.x 重分区算子-partitionCustom自定义分区") 6. [flink1.12.x 重分区算子-shuffle()、rescale()](https://www.malaoshi.top/show_1IX44Zud8wiI.html "flink1.12.x 重分区算子-shuffle()、rescale()") ### sink 1. [flink1.12.x sink](https://www.malaoshi.top/show_1IX1zhe2IMnA.html "flink1.12.x sink") 2. [flink1.12.x Connector连接器](https://www.malaoshi.top/show_1IX45D9TX5l9.html "flink1.12.x Connector连接器") 3. [flink1.12.x sink-JdbcSink保存数据到mysql数据库](https://www.malaoshi.top/show_1IX45CyhcaXf.html "flink1.12.x sink-JdbcSink保存数据到mysql数据库") 4. [flink1.12.x sink-发送数据到kafka(自定义序列化器)](https://www.malaoshi.top/show_1IX45IVVX9Om.html "flink1.12.x sink-发送数据到kafka(自定义序列化器)") 5. [flink1.12.x sink-发送数据到kafka-自定义分区器(partition)](https://www.malaoshi.top/show_1IX4bstwiDZM.html "flink1.12.x sink-发送数据到kafka-自定义分区器(partition)") 6. [flink1.12.x sink-发送数据到elasticsearch7](https://www.malaoshi.top/show_1IX4oFZ2ydza.html "flink1.12.x sink-发送数据到elasticsearch7") 7. [flink1.12.x sink-发送数据到redis(bahir)](https://www.malaoshi.top/show_1IX45UCVE9bb.html "flink1.12.x sink-发送数据到redis(bahir)") 8. [flink1.12.x sink-自定义sink(继承RichSinkFunction)](https://www.malaoshi.top/show_1IX45ZxU7RVr.html "flink1.12.x sink-自定义sink(继承RichSinkFunction)") 9. [flink1.12.x sink-自定义sink将数据保存到redis中](https://www.malaoshi.top/show_1IX45ZKOgnCw.html "flink1.12.x sink-自定义sink将数据保存到redis中") # [flink1.12.x 四个重要概念:Checkpoint、State、Time、Window](https://www.malaoshi.top/show_1IX45qPrZ6A0.html "flink1.12.x 四个重要概念:Checkpoint、State、Time、Window") # Window 窗口 1. [flink1.12.x window窗口和分类(time window、count window、session window会话窗口)](https://www.malaoshi.top/show_1IX20QOWp8iM.html "flink1.12.x window窗口和分类(time window、count window、session window会话窗口)") ### 窗口 api 1. [flink1.12.x window窗口api使用说明:assigner、function、triger、evictor](https://www.malaoshi.top/show_1IX3swfMv1j7.html "flink1.12.x window窗口api使用说明:assigner、function、triger、evictor") 2. [flink1.12.x timeWindow()、countWindow()和timeWindowAll()、countWindowAll()、window()、windowAll()区别](https://www.malaoshi.top/show_1IX20R16bNMk.html "flink1.12.x timeWindow()、countWindow()和timeWindowAll()、countWindowAll()、window()、windowAll()区别") ### 数量窗口 1. [flink1.12.x count window 数量滚动窗口(Tumbling Window)](https://www.malaoshi.top/show_1IX470i3YmZW.html "flink1.12.x count window 数量滚动窗口(Tumbling Window)") 2. [flink1.12.x count window 数量滑动窗口(Sliding Windows)](https://www.malaoshi.top/show_1IX471MT1bF5.html "flink1.12.x count window 数量滑动窗口(Sliding Windows)") ### 会话窗口 [flink1.12.x 会话窗口](https://www.malaoshi.top/show_1IX20QjDOf3f.html "flink1.12.x 会话窗口") # Time 时间 1. [flink1.12.x Time分类-Event Time事件时间、Ingestion Time摄入时间、Processing Time处理时间](https://www.malaoshi.top/show_1IX21KUw2jMI.html "flink1.12.x Time分类-Event Time事件时间、Ingestion Time摄入时间、Processing Time处理时间") 2. [flink1.12.x time window属性:size窗口大小、slide滑动间隔 和 滑动窗口、滚动窗口](https://www.malaoshi.top/show_1IX20QPkHKpO.html "flink1.12.x time window属性:size窗口大小、slide滑动间隔 和 滑动窗口、滚动窗口") ### 处理时间窗口 1. [flink1.12.x window api使用-处理时间的滚动窗口(TumblingProcessingTimeWindows)](https://www.malaoshi.top/show_1IX20RqPYlKa.html "flink1.12.x window api使用-处理时间的滚动窗口(TumblingProcessingTimeWindows)") 2. [flink1.12.x window api使用-处理时间的滑动窗口(SlidingProcessingTimeWindows)](https://www.malaoshi.top/show_1IX20RwFXsoi.html "flink1.12.x window api使用-处理时间的滑动窗口(SlidingProcessingTimeWindows)") ### 窗口函数(window function) 0. [flink1.12.x 窗口函数介绍、分类](https://www.malaoshi.top/show_1IX4Us8vT8Dj.html "flink1.12.x 窗口函数介绍、分类") 1. [flink1.12.x window function窗口函数-增量聚合函数、全量窗口函数(全窗口函数)](https://www.malaoshi.top/show_1IX22Z8dErVL.html "flink1.12.x window function窗口函数-增量聚合函数、全量窗口函数(全窗口函数)") 2. [flink1.12.x 窗口函数(window function)-增量 AggregateFunction](https://www.malaoshi.top/show_1IX22Z8RyX5K.html "flink1.12.x 窗口函数(window function)-增量 AggregateFunction") 3. [flink1.12.x 窗口函数(window function)-全量窗口函数 ProcessWindowFunction](https://www.malaoshi.top/show_1IX2OvDZvUX6.html "flink1.12.x 窗口函数(window function)-全量 ProcessWindowFunction") 3. [flink1.12.x 窗口函数(window function)-全量窗口函数 WindowFunction](https://www.malaoshi.top/show_1IX22eWkSqBb.html "flink1.12.x 窗口函数(window function)-全量 WindowFunction") 4. [flink1.12.x 窗口函数(window function)-增量 AggregateFunction 结合 全量 ProcessWindowFunction](https://www.malaoshi.top/show_1IX4YEbUzTxF.html "flink1.12.x 窗口函数(window function)-增量 AggregateFunction 结合 全量 ProcessWindowFunction") ### Event Time 事件时间 和 WaterMark 水位线 1. [flink1.12.x Event Time事件时间的重要性、乱序数据、迟到数据、WaterMark](https://www.malaoshi.top/show_1IX46mjgbSe9.html "flink1.12.x Event Time事件时间的重要性、乱序数据、迟到数据、WaterMark") 2. [flink1.12.x watermark 水印、水位线](https://www.malaoshi.top/show_1IX21Y5HKYc4.html "flink1.12.x watermark 水印、水位线") 3. flink1.12.x 创建 watermark 步骤 - [flink1.12.x Watermark:创建水位线的步骤1-生成水位线.assignTimestampsAndWatermarks()](https://www.malaoshi.top/show_1IX4Rx4uoGGo.html "flink1.12.x Watermark:创建水位线的步骤1-生成水位线.assignTimestampsAndWatermarks()") - [flink1.12.x Watermark:创建水位线的步骤2-创建 WatermarkStrategy 对象-WatermarkStrategy、forBoundedOutOfOrderness()、forMonotonousTimestamps()](https://www.malaoshi.top/show_1IX4Rx4WeI6h.html "flink1.12.x Watermark:创建水位线的步骤2-创建 WatermarkStrategy 对象-WatermarkStrategy、forBoundedOutOfOrderness()、forMonotonousTimestamps()") - [flink1.12.x Watermark:创建水位线的步骤3-提取时间戳-withTimestampAssigner、SerializableTimestampAssigner](https://www.malaoshi.top/show_1IX4Rx3pysCb.html "flink1.12.x Watermark:创建水位线的步骤3-提取时间戳-withTimestampAssigner、SerializableTimestampAssigner") - [flink1.12.x Watermark:创建水位线的步骤4-实现 SerializableTimestampAssigner 接口](https://www.malaoshi.top/show_1IX4Rx3F8MGZ.html "flink1.12.x Watermark:创建水位线的步骤4-实现 SerializableTimestampAssigner 接口") 3. [flink1.12.x WaterMark 案例:滚动窗口](https://www.malaoshi.top/show_1IX47QiZsd8F.html "flink1.12.x WaterMark 案例:滚动窗口") - [flink1.12.x WaterMark 案例:kafka生产者](https://www.malaoshi.top/show_1IX47WZKETxV.html "flink1.12.x WaterMark 案例:kafka生产者") 4. [flink1.12.x watermark 源码分析](https://www.malaoshi.top/show_1IX482qvtm3f.html "flink1.12.x watermark 源码分析") 5. [flink1.12.x WaterMark 案例:滚动窗口验证](https://www.malaoshi.top/show_1IX47jMJ7jpN.html "flink1.12.x WaterMark 案例:滚动窗口验证") 6. [flink1.12.x 水位线生成时机、分配器(Periodic Watermarks周期性分配水位线、Punctuated Watermarks定点水位线)](https://www.malaoshi.top/show_1IX4FhLxHrz7.html "flink1.12.x 水位线生成时机、分配器(Periodic Watermarks周期性分配水位线、Punctuated Watermarks定点水位线)") ### 收集迟到丢弃的数据 1. [flink1.12.x Watermark 迟到数据 allowedLateness()](https://www.malaoshi.top/show_1IX4bUnTnEHc.html "flink1.12.x Watermark 迟到数据 allowedLateness()") 2. [flink1.12.x WaterMark 迟到数据丢失和收集OutputTag](https://www.malaoshi.top/show_1IX4bVonJ47f.html "flink1.12.x WaterMark 迟到数据丢失和收集OutputTag") 3. [flink1.12.x WaterMark 迟到数据丢失和收集(OutputTag、allowLateness)](https://www.malaoshi.top/show_1IX4864EnNeh.html "flink1.12.x WaterMark 迟到数据丢失和收集(OutputTag、allowLateness)") 4. [flink1.12.x WaterMark 迟到数据丢失和收集(OutputTag、allowLateness)-案例](https://www.malaoshi.top/show_1IX4869CWLsz.html "flink1.12.x WaterMark 迟到数据丢失和收集(OutputTag、allowLateness)-案例") # Process Function 1. [flink1.12.x Process Function处理函数介绍、分类](https://www.malaoshi.top/show_1IX4FBFCaqEo.html "flink1.12.x Process Function处理函数介绍、分类") 2. [flink1.12.x Process Function-ProcessFunction函数,理解watermark计算方式](https://www.malaoshi.top/show_1IX4FhqW81Mb.html "flink1.12.x Process Function-ProcessFunction函数,理解watermark计算方式") 3. [flink1.12.x 窗口函数(window function)-增量 AggregateFunction 结合 全量 ProcessWindowFunction(watermark案例)](https://www.malaoshi.top/show_1IX4UYeJ9lbp.html "flink1.12.x 窗口函数(window function)-增量 AggregateFunction 结合 全量 ProcessWindowFunction(watermark案例)") # State 状态 1. [flink1.12.x State状态-无状态、有状态](https://www.malaoshi.top/show_1IX21iJsrmT2.html "flink1.12.x State状态-无状态、有状态") 2. [flink1.12.x State状态分类(Managed State、Raw State、Keyed State、Operator State)](https://www.malaoshi.top/show_1IX489rhEkA3.html "flink1.12.x State状态分类(Managed State、Raw State、Keyed State、Operator State)") 3. [flink1.12.x State状态数据类型:ValueState、ListState、ReducingState、AggregatingState、MapState](https://www.malaoshi.top/show_1IX48AFjBJhF.html "flink1.12.x State状态数据类型:ValueState、ListState、ReducingState、AggregatingState、MapState") 4. [flink1.12.x State状态实现 maxBy() 功能](https://www.malaoshi.top/show_1IX48FbuKoM6.html "flink1.12.x State状态实现 maxBy() 功能") ### 综合案例 1. [flink1.12.x Process Function-KeyedProcessFunction函数-订单超时取消案例(定时器)](https://www.malaoshi.top/show_1IX4G1R0TjM2.html "flink1.12.x Process Function-KeyedProcessFunction函数-订单超时取消案例(定时器)") 2. [flink1.12.x Process Function-KeyedProcessFunction函数-订单超时取消案例(处理时间)](https://www.malaoshi.top/show_1IX4YbeQw4JK.html "flink1.12.x Process Function-KeyedProcessFunction函数-订单超时取消案例(处理时间)") # Checkpoint 检查点 1. [flink1.12.x 为什么提出checkpoints一致性检查点](https://www.malaoshi.top/show_1IX49Nftp0oC.html "flink1.12.x 为什么提出checkpoints一致性检查点") - [flink1.12.x state和checkpoints区别](https://www.malaoshi.top/show_1IX48dBMA2To.html "flink1.12.x state和checkpoints区别") 2. [flink1.12.x Checkpoint检查点流程](https://www.malaoshi.top/show_1IX49M91xxHc.html "flink1.12.x Checkpoint检查点流程") 3. [flink1.12.x Checkpoint检查点算法Barrier](https://www.malaoshi.top/show_1IX49N43iW89.html "flink1.12.x Checkpoint检查点算法Barrier") - [flink1.12.x barrier对齐和不对齐](https://www.malaoshi.top/show_1IX49PBu5pK2.html "flink1.12.x barrier对齐和不对齐") 4. [flink1.12.x checkpoint:从检查点恢复状态](https://www.malaoshi.top/show_1IX49OZImcTa.html "flink1.12.x checkpoint:从检查点恢复状态") 5. [flink1.12.x End-to-End 端到端数据一致性:at-most-once、at-least-once](https://www.malaoshi.top/show_1IX49NkxVqCp.html "flink1.12.x End-to-End 端到端数据一致性:at-most-once、at-least-once") - [flink1.12.x End-to-End Exactly-Once端到端数据一致性](https://www.malaoshi.top/show_1IX4BaGNyO6y.html "flink1.12.x End-to-End Exactly-Once端到端数据一致性") 6. [flink1.12.x 容错机制:State Backends状态后端-MemoryStateBackend、FsStateBackend、RocksDBStateBackend](https://www.malaoshi.top/show_1IX229AL20SP.html "flink1.12.x 容错机制:State Backends状态后端-MemoryStateBackend、FsStateBackend、RocksDBStateBackend") 7. [flink1.12.x Checkpoint 清除策略](https://www.malaoshi.top/show_1IX49aMKB2qQ.html "flink1.12.x Checkpoint 清除策略") 8. [flink1.12.x 容错机制:状态后端-全局配置、代码中配置](https://www.malaoshi.top/show_1IX22CilCA1w.html "flink1.12.x 容错机制:状态后端-全局配置、代码中配置") 9. [flink1.12.x checkpoint:代码演示案例](https://www.malaoshi.top/show_1IX48qPlMbV5.html "flink1.12.x checkpoint:代码演示案例") - (略)[flink1.12.x 容错机制:代码演示(FsStateBackend)](https://www.malaoshi.top/show_1IX22DcnUOhE.html "flink1.12.x 容错机制:代码演示(FsStateBackend)") 10. [flink1.12.x 容错机制:状态恢复和自动重启策略分类](https://www.malaoshi.top/show_1IX22HJXWTFE.html "flink1.12.x 容错机制:状态恢复和重启策略分类") 1. [flink1.12.x 容错机制:自动重启策略-默认重启策略(代码演示)](https://www.malaoshi.top/show_1IX22HKMdC5F.html "flink1.12.x 容错机制:重启策略分类-默认重启策略(代码演示)") 2. [flink1.12.x 容错机制:自动重启策略-无重启策略(代码演示)](https://www.malaoshi.top/show_1IX22HQ6zWLR.html "flink1.12.x 容错机制:重启策略分类-无重启策略(代码演示)") 3. [flink1.12.x 容错机制:自动重启策略-固定延迟重启策略(常用,代码演示)](https://www.malaoshi.top/show_1IX22HeQcKQr.html "flink1.12.x 容错机制:重启策略分类-固定延迟重启策略(常用,代码演示)") 4. [flink1.12.x 容错机制:自动重启策略-失败率重启策略(代码演示)](https://www.malaoshi.top/show_1IX22IInLLOu.html "flink1.12.x 容错机制:重启策略分类-失败率重启策略(代码演示)") ### savepoint 1. [flink1.12.x Savepoint(与 checkpoint 的区别)](https://www.malaoshi.top/show_1IX49bn2usWH.html "flink1.12.x Savepoint(与 checkpoint 的区别)") 2. [flink1.12.x Savepoint 案例 - per-job cluster模式](https://www.malaoshi.top/show_1IX49mx3d1UA.html "flink1.12.x Savepoint 案例 - per-job cluster模式") 3. [flink1.12.x Savepoint 案例 - session cluster模式](https://www.malaoshi.top/show_1IX49c7m5IGz.html "flink1.12.x Savepoint 案例 - session cluster模式") # sink 1. [flink1.12.x sink-FileSink写入到文件](https://www.malaoshi.top/show_1IX44wEHhKEc.html "flink1.12.x sink-FileSink写入到文件") 2. [flink1.12.x sink-FileSink写入到文件,自定义桶名(文件夹名)](https://www.malaoshi.top/show_1IX4bChNTn4O.html "flink1.12.x sink-FileSink写入到文件,自定义桶名(文件夹名)") # 多流操作 ### 合并流 1. [flink1.12.x Transformation-union()合并同类型的数据流](https://www.malaoshi.top/show_1IX444RNVLgy.html "flink1.12.x Transformation-union()合并同类型的数据流") 2. [flink1.12.x Transformation-connect()合并不同类型的数据流](https://www.malaoshi.top/show_1IX4460EjOjc.html "flink1.12.x Transformation-connect()合并不同类型的数据流") 3. [flink1.12.x Transformation-union() 和 connect() 的区别](https://www.malaoshi.top/show_1IX444ogCv91.html "flink1.12.x Transformation-union() 和 connect() 的区别") ### 拆分流 1. [flink1.12.x Transformation-拆分流-侧流(side output)](https://www.malaoshi.top/show_1IX448tYKwfP.html "flink1.12.x Transformation-拆分流-侧流(side output)") 2. [flink1.12.x 先connect连接流,再拆分流-侧流(side output)](https://www.malaoshi.top/show_1IX44ATilQdI.html "flink1.12.x 先connect连接流,再拆分流-侧流(side output)") ### join 1. [flink1.12.x 双流 join - 介绍](https://www.malaoshi.top/show_1IX4Aq2wklzz.html "flink1.12.x 双流 join - 介绍") 2. [flink1.12.x 双流 join - tumbling window join滚动窗口联结](https://www.malaoshi.top/show_1IX4BF5C9KTJ.html "flink1.12.x 双流 join - tumbling window join滚动窗口联结") 3. [flink1.12.x 双流 join - interval join间隔联结](https://www.malaoshi.top/show_1IX4BVSfprJ7.html "flink1.12.x 双流 join - interval join间隔联结") # table api 和 SQL 1. [flink1.12.x Table API 和 SQL介绍](https://www.malaoshi.top/show_1IX22fIl1Twd.html "flink1.12.x Table API 和 SQL介绍") 2. [flink1.12.x Table API 和 SQL:TableEnvironment、table表和view视图](https://www.malaoshi.top/show_1IX23EdAQciG.html "flink1.12.x Table API 和 SQL:TableEnvironment、table表和view视图") 3. [flink1.12.x Table API 和 SQL:开发流程-流转换动态表](https://www.malaoshi.top/show_1IX4EkvDcYUD.html "flink1.12.x Table API 和 SQL:开发流程-流转换动态表") 4. [flink1.12.x Table API 和 SQL:开发流程-动态表 和 持续查询](https://www.malaoshi.top/show_1IX4ElNigTl9.html "flink1.12.x Table API 和 SQL:动态表 和 持续查询") 5. [flink1.12.x Table API 和 SQL:开发流程-查询结果表转换成流](https://www.malaoshi.top/show_1IX4EllSkkvO.html "flink1.12.x Table API 和 SQL:查询结果表转换成流") 6. [flink1.12.x Table API 和 SQL:基本程序结构](https://www.malaoshi.top/show_1IX23E0v9EXR.html "flink1.12.x Table API 和 SQL:基本程序结构") ### source:DataStream 转换成 Table 1. [flink1.12.x SQL:创建工程,从socket读取数据,实现查询(DataStreamSource转View)](https://www.malaoshi.top/show_1IX4E2CFdBMf.html "flink1.12.x SQL:创建工程,从socket读取数据,实现查询(DataStreamSource转View)") 2. [flink1.12.x Table API 和 SQL:Connector 连接器](https://www.malaoshi.top/show_1IX4EVQ5qLAQ.html "flink1.12.x Table API 和 SQL:Connector 连接器") 3. [flink1.12.x Table API 和 SQL:Connector 连接器从kafka读取数据](https://www.malaoshi.top/show_1IX4Zg0lhPtB.html "flink1.12.x Table API 和 SQL:Connector 连接器从kafka读取数据") 4. [flink1.12.x Table API 和 SQL:创建工程,读取csv文件,创建表,实现查询(connector连接器)](https://www.malaoshi.top/show_1IX23NIaLLkI.html "flink1.12.x Table API 和 SQL:创建工程,读取csv文件,创建表,实现查询(connector连接器)") ### 查询结果 Table 转换成 DataStream 1. [flink1.12.x Table API 和 SQL:Table 转换成 DataStream](https://www.malaoshi.top/show_1IX23ZCdr2iN.html "flink1.12.x Table API 和 SQL:Table 转换成 DataStream") 2. [flink1.12.x Table API 和 SQL:更新模式:追加Append、撤回Retract、更新插入Upsert](https://www.malaoshi.top/show_1IX23OQz4MpW.html "flink1.12.x Table API 和 SQL:更新模式:追加Append、撤回Retract、更新插入Upsert") 3. [flink1.12.x SQL:从socket读取数据,实现分组聚合查询(Retract)](https://www.malaoshi.top/show_1IX4E2bjQrdy.html "flink1.12.x SQL:从socket读取数据,实现分组聚合查询(Retract)") 4. [flink1.12.x Table API 和 SQL:读取csv文件,实现分组聚合查询(Retract)](https://www.malaoshi.top/show_1IX23ORfmWjZ.html "flink1.12.x Table API 和 SQL:读取csv文件,实现分组聚合查询(Retract)") ### sink 1. [flink1.12.x Table API 和 SQL:sink将查询结果写入到文件(非聚合查询)](https://www.malaoshi.top/show_1IX23PaYNmCc.html "flink1.12.x Table API 和 SQL:sink将查询结果写入到文件(非聚合查询)") ### kafka 1. [flink1.12.x Table API 和 SQL:从kafka读取数据,执行查询,将结果写入到kafka中](https://www.malaoshi.top/show_1IX23f177SJ5.html "flink1.12.x Table API 和 SQL:从kafka读取数据,执行查询,将结果写入到kafka中") 2. [flink1.12.x Table API 和 SQL:sink将查询结果写入到elasticsearch(聚合查询)](https://www.malaoshi.top/show_1IX24GpPBCJo.html "flink1.12.x Table API 和 SQL:sink将查询结果写入到elasticsearch(聚合查询)") 3. [flink1.12.x Table API 和 SQL:从kafka读取数据,聚合查询,写入到elasticsearch](https://www.malaoshi.top/show_1IX24Ii9tyMF.html "flink1.12.x Table API 和 SQL:从kafka读取数据,聚合查询,写入到elasticsearch") ### 窗口 和 时间 1. [flink1.12.x SQL:事件时间和watermark,时间类型(TIMESTAMP和TIMESTAMP_LTZ)](https://www.malaoshi.top/show_1IX4EqYZAZoS.html "flink1.12.x SQL:事件时间和watermark,时间类型(TIMESTAMP和TIMESTAMP_LTZ)") 2. [flink1.12.x SQL:Group Windows 窗口查询](https://www.malaoshi.top/show_1IX4ExCFQCgn.html "flink1.12.x SQL:Group Windows 窗口查询") 3. [flink1.12.x SQL:滚动窗口-显示窗口时间函数:TUMBLE_START、TUMBLE_END、TUMBLE_ROWTIME、TUMBLE_PROCTIME](https://www.malaoshi.top/show_1IX4ExvW0JW4.html "flink1.12.x SQL:滚动窗口-显示窗口时间函数:TUMBLE_START、TUMBLE_END、TUMBLE_ROWTIME、TUMBLE_PROCTIME") 4. [flink1.12.x SQL:滚动窗口、水位线 案例](https://www.malaoshi.top/show_1IX4F6bSbN3s.html "flink1.12.x SQL:滚动窗口、水位线 案例") ### udf用户自定义函数 1. [flink1.12.x Table API 和 SQL:UDF用户自定义函数介绍](https://www.malaoshi.top/show_1IX4Nq0n4hwO.html "flink1.12.x Table API 和 SQL:UDF用户自定义函数介绍") 2. [flink1.12.x Table API 和 SQL:UDF用户自定义函数-ScalarFunction标量函数](https://www.malaoshi.top/show_1IX4NqD8HVOA.html "flink1.12.x Table API 和 SQL:UDF用户自定义函数-ScalarFunction标量函数") 3. [flink1.12.x Table API 和 SQL:UDF用户自定义函数-AggregateFunction聚合函数](https://www.malaoshi.top/show_1IX4NqjCbfa9.html "flink1.12.x Table API 和 SQL:UDF用户自定义函数-AggregateFunction聚合函数") ### table api 1. [flink1.12.x Table API:从socket读取数据,实现分组聚合查询(Retract)](https://www.malaoshi.top/show_1IX4E568GPn5.html "flink1.12.x Table API:从socket读取数据,实现分组聚合查询(Retract)") ### 其他 1. [flink1.12.x Table API 和 SQL:Catalogs 介绍](https://www.malaoshi.top/show_1IX4E1fZaRU9.html "flink1.12.x Table API 和 SQL:Catalogs 介绍") 2. [flink1.12.x Table API 和 SQL:Row、RowTypeInfo、TypeInformation、BasicTypeInfo](https://www.malaoshi.top/show_1IX4E5u42q5C.html "flink1.12.x Table API 和 SQL:Row、RowTypeInfo、TypeInformation、BasicTypeInfo") 3. [flink1.12.x Table API 和 SQL:Table转View](https://www.malaoshi.top/show_1IX4E6BPVlxt.html "flink1.12.x Table API 和 SQL:Table转View") 4. [flink1.12.x SQL:时间戳转换:TO_TIMESTAMP、FROM_UNIXTIME](https://www.malaoshi.top/show_1IX4Eu1PihRs.html "flink1.12.x SQL:时间戳转换:TO_TIMESTAMP、FROM_UNIXTIME") # CEP 1. [flink1.12.x FlinkCEP介绍](https://www.malaoshi.top/show_1IX4GEbIRsdf.html "flink1.12.x FlinkCEP介绍") 2. [flink1.12.x FlinkCEP-模式:.where()、begin()、next()、followedBy()](https://www.malaoshi.top/show_1IX4GGASFcaS.html "flink1.12.x FlinkCEP-模式:.where()、begin()、next()、followedBy()") 3. [flink1.12.x FlinkCEP-处理匹配事件:select()、flatSelect()、process()](https://www.malaoshi.top/show_1IX4GGtEj6WF.html "flink1.12.x FlinkCEP-处理匹配事件:select()、flatSelect()、process()") 4. [flink1.12.x FlinkCEP创建工程-处理连续三次登录失败](https://www.malaoshi.top/show_1IX4GJzCbzQ8.html "flink1.12.x FlinkCEP创建工程-处理连续三次登录失败") 5. [flink1.12.x FlinkCEP-打印watermark,理解处理连续三次登录失败](https://www.malaoshi.top/show_1IX4Zj4lvxzH.html "flink1.12.x FlinkCEP-打印watermark,理解处理连续三次登录失败") # 打包运行 1. [flink1.12.x 打包pom.xml,yarn方式运行(socket案例)](https://www.malaoshi.top/show_1IX4DKrWNgzq.html "flink1.12.x 打包pom.xml,yarn方式运行(socket案例)") 2. [flink1.12.x 打包pom.xml,yarn方式运行(kafka案例)](https://www.malaoshi.top/show_1IX4DL1KJUkR.html "flink1.12.x 打包pom.xml,yarn方式运行(kafka案例)") 3. [flink1.12.x Table API 和 SQL:kafka读写数据,打包、上传到flink集群、yarn方式执行](https://www.malaoshi.top/show_1IX4E9BVlUQM.html "flink1.12.x Table API 和 SQL:kafka读写数据,打包、上传到flink集群、yarn方式执行") 4. [flink1.12.x Table API 和 SQL:kafka读写数据,上传到flink集群,flink run执行jar(独立集群模式)](https://www.malaoshi.top/show_1IX23lFFOBHr.html "flink1.12.x Table API 和 SQL:kafka读写数据,上传到flink集群,flink run执行jar(独立集群模式)") 5. [flink1.12.x Table API 和 SQL:读取HDFS文件,将结果写入到HDFS,上传到flink集群,flink run执行jar(独立集群模式)](https://www.malaoshi.top/show_1IX23aw2IQnV.html "flink1.12.x Table API 和 SQL:读取HDFS文件,将结果写入到HDFS,上传到flink集群,flink run执行jar(独立集群模式)") 6. [flink1.12.x Table API 和 SQL:从kafka读取数据,写入到elasticsearch,上传flink集群,flink run执行jar(独立集群模式)](https://www.malaoshi.top/show_1IX24XVDG1Bf.html "flink1.12.x Table API 和 SQL:从kafka读取数据,写入到elasticsearch,上传flink集群,flink run执行jar(独立集群模式)") # 解析命令行参数、读取外部配置文件 1. [flink 使用 ParameterTool 解析命令行参数](https://www.malaoshi.top/show_1IX4bwxw04Uz.html "flink 使用 ParameterTool 解析命令行参数") 2. [flink 使用 ParameterTool 读取外部配置文件](https://www.malaoshi.top/show_1IX4bx94AzTP.html "flink 使用 ParameterTool 读取外部配置文件") 3. [flink 使用 ParameterTool 读取外部配置文件,在算子中访问配置(全局变量)](https://www.malaoshi.top/show_1IX4bxHt442i.html "flink 使用 ParameterTool 读取外部配置文件,在算子中访问配置(全局变量)") # 其他 1. [flink1.12.x 执行官方例子-wordcount](https://www.malaoshi.top/show_1IX1ym5Y8dew.html "flink1.12.x 执行官方例子-wordcount") 2. [flink1.12.x 支持HDFS(hadoop3)](https://www.malaoshi.top/show_1IX1yphI0EXh.html "flink1.12.x 支持HDFS(hadoop3)") 3. [flink1.12.x flink run命令参数](https://www.malaoshi.top/show_1IX1zJh1NTTB.html "flink1.12.x flink run命令参数") 4. [flink 维表关联、翻译字典](https://www.malaoshi.top/show_1IX4AqCDMezt.html "flink 维表关联、翻译字典") # 常见错误 1. [maven-resources-plugin:jar:2.6 is missing, no dependency information available](https://www.malaoshi.top/show_1IX1z8TXhpTO.html ) 2. [flink1.12.x:Could not complete the operation. Number of retries has been exhausted.](https://www.malaoshi.top/show_1IX2SbY9cFK0.html "flink1.12.x:Could not complete the operation. Number of retries has been exhausted.") 3. [flink1.12.x:拒绝连接: hadoop2/192.168.58.102:47](https://www.malaoshi.top/show_1IX2SbYnT9V1.html "flink1.12.x:拒绝连接: hadoop2/192.168.58.102:47") 4. [Slot request bulk is not fulfillable! Could not allocate the required slot within slot request timeout](https://www.malaoshi.top/show_1IX49kiNyHgG.html "Slot request bulk is not fulfillable! Could not allocate the required slot within slot request timeout") 原文出处:http://malaoshi.top/show_1IX204ietmJH.html