一、概述
,简称,是一个流式数据湖平台,支持对海量数据快速更新,内置表格式,支持事务的存储层、 一系列表服务、数据服务(开箱即用的摄取工具)以及完善的运维监控工具,它可以以极低的延迟将数据快速存储到HDFS或云存储(S3)的工具,最主要的特点支持记录级别的插入更新(Upsert)和删除,同时还支持增量查询。
GitHub地址:https://github.com/apache/hudi
官方文档:https://hudi.apache.org/cn/docs/overview
二、Hudi CLI
构建hudi后,可以通过cd hudi cli&&启动shell。一个hudi表驻留在DFS上的一个称为basePath的位置,我们需要这个位置才能连接到hudi表。Hudi库有效地在内部管理此表,使用.hoodie子文件夹跟踪所有元数据。
编译生成的包如下:
三、Spark 与 Hudi 整合使用
Hudi 流式数据湖平台,协助管理数据,借助HDFS文件系统存储数据,使用Spark操作数据。
1)Spark 测试
2)Spark 与 Hudi 整合使用
官方示例:https://hudi.apache.org/docs/quick-start-guide/
在spark-shell命令行,对Hudi表数据进行操作,需要运行spark-shell命令是,添加相关的依赖包,命令如下:
1、启动spark-shell
【第一种方式】在线联网下载相关jar包
【第二种方式】离线使用已经下载好的jar包
2、导入park及Hudi相关包
3、定义变量
4、模拟生成Trip乘车数据
其中,DataGenerator可以用于生成测试数据,用来完成后续操作。
5、将模拟数据List转换为DataFrame数据集
6、将数据写入到hudi
本地存储
HDFS 存储
四、Flink 与 Hudi 整合使用
官方示例:https://hudi.apache.org/docs/flink-quick-start-guide
1)启动flink集群
2) 启动flink SQL 客户端
3)添加数据
HDFS上查看
4)查询数据(批式查询)
5)更新数据
6)Streaming Query(流式查询)
首先创建表t2,设置相关属性,以流的方式查询读取,映射到上面表:t1
设置为true,表明通过streaming的方式读取表数据;
指定了source监控新的commits的间隔时间4s
设置表类型为 MERGE_ON_READ
注意:查看可能会遇到如下错误:
【解决】添加和到Flink lib中。
Hive 与 Hudi的整合,小伙伴可以先看官网文档:https://hudi.apache.org/docs/syncing_metastore/#flink-setup
Spark 和 Hudi整合,Flink 与 Hudi整合先到这里了,还有很多其它大数据组件与Hudi的整合示例讲解会放在后面文章讲解,请小伙伴耐心等待,有任何疑问欢迎留言,会持续更新【大数据+云原生】相关的文章~
领取专属 10元无门槛券
私享最新 技术干货