打开

Apache Hudi 数据湖简介

subtitle
软件架构 2021-10-20 11:52

Apache Hudi 是数据湖的开源项目,Hudi 是Hadoop Updates and Incrementals的简写,它是由Uber 开发并开源的数据湖解决方案。

打开网易新闻 查看更多图片

Apache Hudi 使得您能在hadoop兼容的存储之上存储大量数据,同时它还提供两种原语,使得除了经典的批处理之外,还可以在数据湖上进行流处理。这两种原语分别是:

  • Update/Delete记录:Hudi使用细粒度的文件/记录级别索引来支持Update/Delete记录,同时还提供写操作的事务保证。查询会处理最后一个提交的快照,并基于此输出结果。
  • 变更流:Hudi对获取数据变更提供了一流的支持:可以从给定的时间点获取给定表中已updated/inserted/deleted的所有记录的增量流,并解锁新的查询姿势(类别)。

Hudi表的三个主要组件:1)有序的时间轴元数据。类似于数据库事务日志。2)分层布局的数据文件:实际写入表中的数据。3)索引(多种实现方式):映射包含指定记录的数据集。

Apache Hudi在大数据应用场景中,所处的位置,如下图所示:

可以看到Hudi在整个生态里是做湖存储,底层可以对接HDFS以及各种云厂商的对象存储,只要兼容Hadoop协议。上游是入湖的变化事件流,对上可以支持各种各样的数据引擎,比如Presto、Spark以及云上产品;另外可以利用Hudi的增量拉取能力借助Spark、Hive、Flink构建派生表。

其典型用法是将上游数据通过 Kafka 或者 Sqoop,经由 DeltaStreamer 写入 Hudi。DeltaStreamer 是一个常驻服务,不断地从上游拉取数据,并写入 hudi。写入是分批次的,并且可以设置批次之间的调度间隔。默认间隔为 0,类似于 Spark Streaming 的 As-soon-as-possible 策略。随着数据不断写入,会有小文件产生。对于这些小文件,DeltaStreamer 可以自动地触发小文件合并的任务。

特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。
15赞
大家都在看打开应用 查看全部
网易热搜每30分钟更新
打开应用 查看全部
打开