暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

建议收藏 | Flink系列总结篇 ↗

大数据技能圈 2024-09-18
43
经过一个多月的更新,Flink系列基础部分基本接近尾声,下一趴会进入Dinky部分,在Flink更新的时候,每一部分我都配套文档及对应的代码,圈友在学习的过程中可以下载代码并直接在本地IDEA中运行。现对Flink系列进行如下总结:

01

代码获取地址

https://gitee.com/wzylzjtn/data-warehouse-learning

https://github.com/Mrkuhuo/data-warehouse-learning


    ├─learn_flink
    │  ├─part10_flink_restart
    │  ├─part11_flink_join
    │  ├─part1_flink_apis
    │  ├─part2_flink_local_model
    │  ├─part3_flink_time
    │  ├─part4_flink_window
    │  ├─part5_flink_watermark
    │ ├─part6_flink_state
    │  ├─part7_flink_statebackend
    │  ├─part8_flink_checkpoint
    │  ├─part9_flink_state_ttl
    │  ├─util


    这或许是一个对你有用的开源项目data-warehouse-learning 项目是一套基于 MySQL + Kafka + Hadoop + Hive + Dolphinscheduler + Doris + Seatunnel + Paimon + Hudi + Iceberg + Flink + Dinky + DataRT + SuperSet 实现的实时离线数仓(数据湖)系统,以大家最熟悉的电商业务为切入点,详细讲述并实现了数据产生、同步、数据建模、数仓(数据湖)建设、数据服务、BI报表展示等数据全链路处理流程。

    https://gitee.com/wzylzjtn/data-warehouse-learning

    https://github.com/Mrkuhuo/data-warehouse-learning

    https://bigdatacircle.top/

    项目演示:

    02

    文档目录

    Flink进阶部分后续会更新在文档中,不会发布在公众号,有需求的朋友可订阅星球获取。文档目前更新了40000字,99页,部分目录如下:
      0 Flink版本及代码下载... 4
      1 基本架构... 5
      1.1 运行时架构图... 5
      1.1.1 Client 6
      1.1.2 JobManager 6
      1.1.3 TaskManager 7
      1.1.4 Task Solts. 7
      1.2 Flink中的API 14
      1.2.1 SQL. 14
      1.2.2 Table API 15
      1.2.3 Core APIs. 16
      1.2.4 有状态实时流处理... 17
      2 部署模式... 18
      2.1 Local 开发模式... 18
      2.1.1Flink 项目中添加本地模式 WebUI的依赖... 18
      2.1.2 在代码中启用本地WebUI 18
      2.1.3 编写完整代码启动并访问WebUI 19
      2.2 Flink安装... 21
      2.2.1 安装包下载... 21
      2.2.2 OpenJDK 8 安装... 21
      2.2.3 安装步骤(单机版)... 24
      2.3 Flink Session 集群... 27
      2.5 Flink Application 集群... 30
      3 Event Time & Window & Watermark. 31
      3.1 时间语义... 32
      3.1.1 Event Time. 32
      3.1.2 Processing Time. 33
      3.3.1 WaterMark+Windows触发时机... 33
      3.1.3 Ingestion Time. 34
      3.2 Window.. 34
      3.2.1滚动窗口(Tumbling window)... 35
      3.2.1 滑动窗口(Sliding window)... 36
      3.2.3 会话窗口(Session window)... 37
      3.2.4 全局窗口(Global window)... 38
      3.2.5 窗口原理... 39
      3.3 Watermark. 41
      3.3.2 watermark的传递... 42
      3.3.3 watermark的2种生产方式... 43
      3.3.4 处理空闲数据源... 45
      3.4 allowedLateness. 46
      3.5 SideOutput旁路输出... 46
      4 容错及恢复... 47
      4.1 State. 48
      4.1.1 State概述... 48
      4.1.2 State种类... 48
      4.1.3 State的存在形式... 51
      4.2 State backend. 52
      4.2.1 Flink的三种状态后端... 52
      4.3 Checkpoint 53
      4.4 状态一致性... 54
      4.4.1 一致性级别... 54
      4.4.2 端到端一致性... 55
      4.5 State设置过期时间... 55
      4.5.1 datastreamTTL. 56
      4.5.2 Table APISQL 模块状态管理... 56
      4.6 故障恢复... 57
      4.7 Savepoint 58
      5 Flink 优化... 58
      5.1 代码优化... 58
      5.2 参数优化... 59
      5.3 资源优化... 61
      5.4 作业优化... 62
      6 Flink双流Join. 63
      6.1 什么是join. 63
      6.2 为什么要Join. 63
      6.3 Join的种类... 64
      6.4 Regular Join. 64
      6.5 Interval Join(时间区间Join)... 68
      6.6 Temporal Join(快照Join)... 72
      7.7 6.7 Lookup Join(维度表Join) 75
      6.8 Array Exception(数组列转行)... 76
      7. Flink 反压... 77
      7.1Flink数据传输看【反压】... 78
      7.1.1 生产者-消费者模式... 78
      7.1.2 何为【反压】... 78
      7.2 基于Credit的反压机制... 80
      7.2.1 算法介绍... 80
      7.2.2 反压过程... 80
      7.2.2 优化的点... 81
      7.3 Flink Job 调优... 82
      7.3.1 反压案例... 82
      7.3.2 调优思路... 82
      8 盘点Flink实战踩过的坑... 85
      8.1 数据倾斜导致子任务积压... 85
      8.2 Kafka 消息大小默认配置太小,导致数据未处理... 86
      8.3 Tps 很大,Kafka Ack 默认配置 拖慢消息处理速度... 86
      8.4 The heartbeat of TaskManager with id container ....... timed out 86
      8.5 Kafka partition leader切换导致Flink重启... 87
      8.6 注意 mapWithState & TTL 的重要性... 87
      8.7 部署和资源问题... 88
      8.8 作业问题... 90
      9 Flink任务内存泄漏导致频繁Full GC导致CPU暴增问题排查... 91
      9.1 现象... 91
      9.2 初步分析... 91
      9.2.1 为什么单个 Pod CPU 100% 会导致整个 Flink 任务消费延迟?... 92
      9.2.2 为什么消费延迟一段时间后会恢复?... 92
      9.2.3 是否会造成数据丢失?... 94
      9.3 原因定位... 94
      9.3.1 分析Java进程及线程的CPU使用率... 95
      9.3.2 分析GC日志... 96
      9.3.3 分析内存泄漏... 97
      9.3.4 定位代码... 98
      9.4 总结... 99

      03

      文档获取

      04

      进交流群群添加作者

       

      推荐阅读系列文章

      文章转载自大数据技能圈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论