实践数据湖iceberg 第三十一课 使用github的flink-streaming-platform-web工具,管理flink任务流,测试cdc重启场景

系列文章目录

实践数据湖iceberg 第一课 入门
实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式
实践数据湖iceberg 第三课 在sqlclient中,以sql方式从kafka读数据到iceberg
实践数据湖iceberg 第四课 在sqlclient中,以sql方式从kafka读数据到iceberg(升级版本到flink1.12.7)
实践数据湖iceberg 第五课 hive catalog特点
实践数据湖iceberg 第六课 从kafka写入到iceberg失败问题 解决
实践数据湖iceberg 第七课 实时写入到iceberg
实践数据湖iceberg 第八课 hive与iceberg集成
实践数据湖iceberg 第九课 合并小文件
实践数据湖iceberg 第十课 快照删除
实践数据湖iceberg 第十一课 测试分区表完整流程(造数、建表、合并、删快照)
实践数据湖iceberg 第十二课 catalog是什么
实践数据湖iceberg 第十三课 metadata比数据文件大很多倍的问题
实践数据湖iceberg 第十四课 元数据合并(解决元数据随时间增加而元数据膨胀的问题)
实践数据湖iceberg 第十五课 spark安装与集成iceberg(jersey包冲突)
实践数据湖iceberg 第十六课 通过spark3打开iceberg的认知之门
实践数据湖iceberg 第十七课 hadoop2.7,spark3 on yarn运行iceberg配置
实践数据湖iceberg 第十八课 多种客户端与iceberg交互启动命令(常用命令)
实践数据湖iceberg 第十九课 flink count iceberg,无结果问题
实践数据湖iceberg 第二十课 flink + iceberg CDC场景(版本问题,测试失败)
实践数据湖iceberg 第二十一课 flink1.13.5 + iceberg0.131 CDC(测试成功INSERT,变更操作失败)
实践数据湖iceberg 第二十二课 flink1.13.5 + iceberg0.131 CDC(CRUD测试成功)
实践数据湖iceberg 第二十三课 flink-sql从checkpoint重启
实践数据湖iceberg 第二十四课 iceberg元数据详细解析
实践数据湖iceberg 第二十五课 后台运行flink sql 增删改的效果
实践数据湖iceberg 第二十六课 checkpoint设置方法
实践数据湖iceberg 第二十七课 flink cdc 测试程序故障重启:能从上次checkpoint点继续工作
实践数据湖iceberg 第二十八课 把公有仓库上不存在的包部署到本地仓库
实践数据湖iceberg 第二十九课 如何优雅高效获取flink的jobId
实践数据湖iceberg 第三十课 mysql->iceberg,不同客户端有时区问题
实践数据湖iceberg 第三十一课 使用github的flink-streaming-platform-web工具,管理flink任务流,测试cdc重启场景
实践数据湖iceberg 更多的内容目录


前言

flink重启,需要从checkpoint恢复。涉及到任务工程化管理,自研一套这种工具,很耗时,对小公司来说,吃力不讨好,所有寻找了个开源方案, 测试flink-streaming-platform-web ,支持sql,jar,各种集群模式提交,亲测可用


一、使用开源组件flink-streaming-platform-web ,管理flink任务

flink-streaming-platform-web 使用开源组件,管理flink任务
源码地址: https://github.com/zhp8341/flink-streaming-platform-web
相关使用说明:官网写得很详细,请查看官网

二、测试flink-streaming-platform-web 在重启时,从checkpoint恢复

核心逻辑: 从mysql读到iceberg

1.代码,从mysql读到iceberg

  1. mysql原始数据
    在这里插入图片描述
    3.启动程序
    4.查看iceberg表的结果,发现同步了。
    在这里插入图片描述
    5.测试新增的变化数据

加一条id=5,和 update一条数据,如下

INSERT INTO `stock_basic` VALUES ('5', '000007.SZ', '000007', '*ST全新', '深圳', '酒店餐饮', '19920413', null);

update stock_basic set actural_controller='me me me' where i='0';

查iceberg,发现捕捉到变更了:
在这里插入图片描述

6.重启,看看能否从checkpoint恢复

在这里插入图片描述
点击恢复,跳出如下对话:
在这里插入图片描述
点击恢复,刷新flink主页面,发现任务正常启动:
在这里插入图片描述

  1. 到sink表查看数据,看看手否重复消费:
    发现没有重复。
    在这里插入图片描述

  2. 重新测试,停止程序后,写几条数据进去,看看从checkpoint恢复后,是否捕捉到变更数据

步骤1:记录savePoint
步骤2:停止程序
步骤3:insert update delete变更

INSERT INTO `stock_basic` VALUES ('6', '000008.SZ', '000008', '神州高铁', '北京', '运输设备', '19920507', '国家开发投资集团有限公司');
update stock_basic set actural_controller='汉武帝' where i='1';
delete from stock_basic where i='0';

在这里插入图片描述

步骤4: 恢复程序
在这里插入图片描述
恢复后,等一个checkpoint的时间,到spark-sql查,发现,捕捉到变更
在这里插入图片描述

总结

这个flink-streaming-platform-web 确实好用! 先用来玩玩

<think>好的,我现在需要帮用户规划Hudi的学习路径,从入门到精通。首先,我应该先回顾用户提供的引用内容,特别是引用[2]和引用[4],因为用户提到了Hudi是三大开源数据湖方案之一,并且数仓开发的核心技能需要扎实掌握。用户可能已经有一定的大数据基础,但需要系统的学习路线。 首先,用户需要了解Hudi的基础概念,比如它的核心特性、适用场景。根据引用[2],Hudi主要用于数据湖的更新和增量处理,所以这部分应该作为入门的第一步。然后,安装和配置Hudi的环境是必要的,用户可能需要实际操作来加深理解,比如在Hadoop或Spark上部署。 接下来是核心功能的学习,比如表类型(COW和MOR)、写入和查询操作。这部分需要结合文档和示例代码,用户可能需要动手实践。然后,集成其他大数据组件如Spark、Flink、Hive,这部分很重要,因为实际项目中Hudi通常会和这些工具一起使用。 进阶部分包括存储管理、索引机制和时间轴,这些是优化性能的关键。用户可能需要深入理解这些机制来提升数据处理效率。数据湖架构设计方面,引用[4]提到数仓开发需要扎实的核心技能,所以这部分需要结合实际案例,学习如何设计高效的数据湖项目实战是巩固知识的关键步骤,用户需要通过真实场景的应用来掌握Hudi,比如实时数仓或CDC处理。最后,持续学习社区资源和优化技巧,保持对Hudi新功能的了解。 用户可能还需要推荐的学习资源,比如官方文档、书籍、视频教程,以及社区和训练营。根据引用[3],建议用户不要局限在代码层面,要关注整体方向,所以学习路径中需要包含架构设计的内容。 最后,生成相关问题,帮助用户进一步探索,比如性能优化、与其他数据湖框架对比等。这些问题能引导用户深入学习和解决实际问题。</think>### Hudi 学习路线图(入门到精通) #### 一、基础认知阶段 1. **核心概念理解** - 学习数据湖概念与三大开源方案对比(Hudi vs Delta Lake vs Iceberg)[^2] - 掌握 Hudi 的核心特性: - 支持事务、更新、删除(传统数据湖不具备) - 增量查询(`Incremental Pull`) - 自动合并小文件(`Clustering`) 2. **环境搭建** - 在 Hadoop/Spark 集群上部署 Hudi(需先掌握基础环境配置) - 使用 Docker 快速体验 Hudi 功能(推荐官方示例仓库) --- #### 二、核心功能实践 1. **基础操作** - 表类型选择: - `COW(Copy-On-Write)`:适用于高频更新场景 - `MOR(Merge-On-Read)`:适用于高频写入场景 - 实现数据写入与查询: ```python # Spark 写入示例(Python API) hudi_options = { 'hoodie.table.name': 'user_table', 'hoodie.datasource.write.recordkey.field': 'id', 'hoodie.datasource.write.precombine.field': 'timestamp' } df.write.format("hudi").options(**hudi_options).mode("append").save("/hudi_data") ``` 2. **组件集成** - 与 Spark 流处理结合(`Structured Streaming`) - 集成 Flink 实现实时数据湖 - Hive 外部表映射 Hudi 数据集 --- #### 三、进阶优化 1. **存储管理** - 文件压缩策略(`Compaction`)配置 - 索引机制优化(`Bloom Filter` vs `HBase Index`) - 时间轴(`Timeline`)数据追溯与回滚 2. **数据湖架构设计** - 基于 Hudi 的实时数仓分层设计(ODS -> DWD -> DWS) - CDC(变更数据捕获)场景实践[^4] --- #### 四、学习资源推荐 1. **官方文档** - [Hudi 官网](https://hudi.apache.org/)(必读核心文档) - GitHub 官方示例代码库 2. **书籍与视频** - 书籍:《Apache Hudi 实战》(需搭配环境实操) - 视频:B 站《Hudi 从原理到源码解析》系列教程[^3] 3. **社区与训练营** - 参与 Hudi 社区 Meetup(关注 GitHub Discussions) - 报名数据湖实战训练营(推荐结合 Spark/Flink 综合项目---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值