Hudi
文章平均质量分 74
Hudi基本使用和原理解析
Bulut0907
大数据、机器学习、编程语言、IT相关技术分享, 喜欢请关注、点赞、收藏哦!
展开
-
Apache Hudi数据湖hudi-cli客户端使用
目录1. 开启hudi-cli2. 创建表3. desc4. connect表5. 查看commit信息5.1 commits show5.2 commit showpartitions5.3 commit showfiles6. 查看FileSystem信息: show fsview7. 文件大小Statistics8. Compactions8.1 查看compaction8.2 schedule或run compaction8.3 验证compaction8.4 Unscheduling Compac原创 2022-06-15 09:21:44 · 4020 阅读 · 2 评论 -
Apache Hudi数据湖的File Sizing
目录1. 目标2. Auto-Size During ingestion2.1 For Copy-On-Write2.2 For Merge-On-Read3. Auto-Size With Clustering注意:HDFS上的文件永远是不变的。将数据写入小文件,是通过将数据与小文件合并,生成一个new version file1. 目标Hudi通过控制file的大小,来避免创建过多的小文件。有两种方法:Auto-Size During ingestionAuto-Size With Cl原创 2022-06-15 09:20:34 · 579 阅读 · 0 评论 -
Apache Hudi数据湖的Marker机制
目录1. 目的1. 目的一个write开始时,会先创建一个marker,等write完成时,会删除marker。如果marker未删除,表示write失败,会留下部分脏数据文件。标记的作用如下:marker用于清除脏数据文件marker用于数据rollback......原创 2022-06-14 09:12:49 · 662 阅读 · 0 评论 -
Apache Hudi数据湖的Cleaning服务
目录1. 介绍2. Cleaning Retention Policies3. Run Asynchronously4. CLI1. 介绍默认是自动进行clean,由参数hoodie.clean.automatic设置,表示在每一次commit的时候就clean file slices。推荐设置为true开启该功能2. Cleaning Retention PoliciesKEEP_LATEST_COMMITS: 默认的policy,保留最近N次commitKEEP_LATEST_FILE_VE原创 2022-06-14 09:09:26 · 610 阅读 · 0 评论 -
Apache Hudi数据湖的Flink优化参数
目录1. 表参数1.1 Memory1.2 Parallelism1.3 Compaction1. 表参数1.1 Memory参数名称描述默认值备注write.task.max.size每个write task使用的最大内存,超过则对数据进行flush1024MBwrite buffer使用的内存 = write.task.max.size - compaction.max_memory,当write buffer总共使用的内存超过限制,则将最大的buffer进行flus原创 2022-06-13 09:20:06 · 1455 阅读 · 0 评论 -
Flink写入数据到Hudi数据湖的各种方式 + Flink从Hudi数据湖读取数据的各种方式
目录1. CDC Ingestion1. CDC Ingestion有两种方式同步数据到Hudi使用Flink CDC直接将Mysql的binlog日志同步到Hudi数据先同步到Kafka/Pulsar等消息系统,然后再使用Flink cdc-format将数据同步到Hudi注意:1. 如果upstream不能保证数据的order,则需要显式指定write.precombine.field2. MOR类型的表,还不能处理delete,所以会导致数据不一致。可以通过changelog.enab原创 2022-06-13 09:18:43 · 5875 阅读 · 0 评论 -
Flink CDC 2.2.0同步Mysql数据到Hudi数据湖
目录1. 介绍2. Deserialization序列化和反序列化3. 添加Flink CDC依赖3.1 sql-client3.2 Java/Scala API4. 使用SQL方式同步Mysql数据到Hudi数据湖4.11. 介绍Flink CDC底层是使用Debezium来进行data changes的capture特色:支持先读取数据库snapshot,再读取transaction logs。即使任务失败,也能达到exactly-once处理语义可以在一个job中,通过正则表达式对多个da原创 2022-06-07 09:21:57 · 2278 阅读 · 2 评论 -
使用Flink1.14.4 + Hudi0.11.0构建数据湖
目录1. Flink集成Hudi2. 创建表1. Flink集成Hudi0.10.1版本的Hudi,可以和Scala2.12版本的Flink1.13.x一起使用将Hudi的依赖包(已包含flink-parquet和flink-avro formats)下载放到Flink集群所有服务器的lib目录下,然后重启Flink[root@flink1 ~]# wget -P /root/flink-1.14.3/lib https://repo.maven.apache.org/maven2/org/apac原创 2022-06-07 09:20:35 · 1744 阅读 · 0 评论 -
各查询引擎对Apache Hudi数据湖不同查询方式的Support Matrix
目录1. Copy-On-Write tables2. Merge-On-Read tables1. Copy-On-Write tables查询引擎Snapshot QueriesIncremental QueriesHiveYYSpark SQLYYSpark DatasourceYYFlink SQLYNPrestoDBYNTrinoYNImpalaYN2. Merge-On-Read tables原创 2022-06-06 09:27:30 · 296 阅读 · 0 评论 -
Apache Hudi数据湖源码编译
目录1. 下载解压2. 使用maven编译1. 下载解压[root@bigdata005 hudi]# [root@bigdata005 hudi]# pwd/opt/hudi[root@bigdata005 hudi]# [root@bigdata005 hudi]# wget https://github.com/apache/hudi/archive/refs/heads/master.zip[root@bigdata005 hudi]# [root@bigdata005 hudi]#原创 2022-06-06 09:25:33 · 485 阅读 · 0 评论 -
【数据湖Hudi的概念】Key Generation和Concurrency Control
目录1. Timeline2. File Layouts3. Table Types3.1 Copy On Write3.2 Merge On Read3.3 Copy On Write对比Merge On Read4. Indexing5. Metadata Table6. Write Operation类型7. Schema Evolution8. Key Generation8.1 SimpleKeyGenerator8.2 ComplexKeyGenerator8.3 NonPartitionedK原创 2022-05-30 09:13:40 · 860 阅读 · 0 评论 -
【数据湖Hudi的概念】Write Operation类型和Schema Evolution
目录1. Write Operation类型2. Schema Evolution1. Write Operation类型类型如下:upsert(默认):先查找索引,然后再进行insert或updateinsert:不查找索引,直接insertbulk_insert:对于表初始化时,进行几百TB数据的insert。数据insert时会进行排序deleteSoft Deletes:删除一条数据的时候,保留数据,但将其它字段设置为nullHard Deletes:进行physically r原创 2022-05-30 09:11:32 · 1029 阅读 · 0 评论 -
【数据湖Hudi的概念】Table Types、Indexing和Metadata Table
目录1. Table Types1.1 Copy On Write1.2 Merge On Read1.3 Copy On Write对比Merge On Read2. Indexing3. Metadata Table1. Table Types1.1 Copy On WriteCopy-On-Write表的file slice只有一个base file,每一次action都会进行compaction,产生新version的file slice说明:field1、field2、field3在1原创 2022-05-26 09:54:40 · 973 阅读 · 0 评论 -
【数据湖Hudi的概念】Timeline和File Layouts
1. TimelineHudi对一个table的各种action都会记录操作的instant time和status。对一系列的instant time按发生的先后顺序排列,形成一个timelineaction有以下几种:commits:对包含一条或多条数据的一次原子性write,进行commitcleans:后台进程对不需要的老版本files进行删除delta_commit:对于MergeOnRead类型的table,对包含一条或多条数据的一次原子性write,进行delta commit,数原创 2022-05-26 09:53:27 · 523 阅读 · 0 评论