Apache Hudi 架构设计和基本概念

Apache Hudi 是一个 Data Lakes 的开源方案,Hudi 是 Hadoop Updates and Incrementals 的简写,它是由 Uber 开发并开源的 Data Lakes 解决方案。Hudi 具有如下基本特性/能力: Hudi 能够摄入(Ingest)和管理(Manage)基于 HDFS 之上的大型分析数据集,主要目的是高效的减少入库延时。 Hudi 基于 Spark 来对 HDFS 上的数据进行更新、插入、删除等。 Hudi 在 HDFS 数据集上提供如下流原语:插入更新(如何改变数据集);增量拉取(如何获取变更的数据)。 Hudi 可以对 HDFS 上的 parquet 格式数据进行插入/更新操作。 Hudi 通过自定义 InputFormat 与 Hadoop 生态系统(Spark、Hive、Parquet)集成。 Hudi 通过 Savepoint 来实现数据恢复。 目前,Hudi 支持 Spark 2.x 版本,建议使用 2.4.4+ 版本的 Spark。 基本架构 与 Kudu 相比,Kudu 是一个支持 OLTP workload 的数据存储系统,而 Hudi 的设计目标是基于 Hadoop 兼容的文件系统(如 HDFS、S3 等),重度依赖 Spark 的数据处理能力来实现增量处理和丰富的查询能力,Hudi 支持 Incremental Pulling 而 Kudu 不