ApacheHudi与其他类似系统的比较

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: ApacheHudi与其他类似系统的比较

Apache Hudi填补了在DFS上处理数据的巨大空白,并可以和一些大数据技术很好地共存。然而,将Hudi与一些相关系统进行对比,来了解Hudi如何适应当前的大数据生态系统,并知晓这些系统在设计中做的不同权衡仍将非常有用。

Kudu

Apache Kudu是一个与Hudi具有相似目标的存储系统,该系统通过对 upserts支持来对PB级数据进行实时分析。一个关键的区别是Kudu还试图充当OLTP工作负载的数据存储,而Hudi并不希望这样做。因此,Kudu不支持增量拉取(截至2017年初),而Hudi支持增量处理。

Kudu与分布式文件系统抽象和HDFS完全不同,它自己的一组存储服务器通过RAFT相互通信。与之不同的是,Hudi旨在与底层Hadoop兼容的文件系统(HDFS,S3或Ceph)一起使用,并且没有自己的存储服务器群,而是依靠Apache Spark来完成繁重的工作。因此,Hudi可以像其他Spark作业一样轻松扩展,而Kudu则需要硬件和运营支持,特别是HBase或Vertica等数据存储系统。到目前为止,我们还没有做任何直接的基准测试来比较Kudu和Hudi。但是,如果我们要使用CERN,我们预期Hudi在摄取parquet文件上有更卓越的性能。

Hive事务

Hive事务/ACID是另一项类似的工作,它试图在ORC文件格式之上的实现 读取时合并的存储层。可以理解,此功能与Hive以及LLAP之类的其他工作紧密相关。Hive事务不提供Hudi提供的读取优化存储选项或增量拉取。在实现选择方面,Hudi充分利用了类似Spark的处理框架的功能,而Hive事务特性则在用户或Hive Metastore启动的Hive任务/查询的下实现。根据我们的生产经验,与其他方法相比,将Hudi作为库嵌入到现有的Spark管道中要容易得多,并且操作不会太繁琐。Hudi还设计用于与Presto/Spark等非Hive引擎合作,并计划引入除parquet以外的文件格式。

HBase

尽管HBase最终是OLTP工作负载的键值存储层,但由于与Hadoop的相似性,用户通常倾向于将HBase与分析相关联。鉴于HBase经过严格的写优化,它支持开箱即用的亚秒级更新,Hive-on-HBase允许用户查询该数据。但是,就分析工作负载的实际性能而言,Parquet/ORC之类的混合列式存储格式可以轻松超越HBase,因为这些工作负载主要是读取繁重的工作。Hudi弥补了更快的数据与分析存储格式之间的差距。从运营的角度来看,与管理分析使用的HBase region服务器集群相比,为用户提供可更快给出数据的库更具可扩展性。最终,HBase不像Hudi这样重点支持 提交时间增量拉取之类的增量处理原语。

流式处理

一个普遍的问题:"Hudi与流处理系统有何关系?",我们将尝试回答。简而言之,Hudi可以与当今的批处理( 写时复制存储)和流处理( 读时合并存储)作业集成,以将计算结果存储在Hadoop中。对于Spark应用程序,这可以通过将Hudi库与Spark/Spark流式DAG直接集成来实现。在非Spark处理系统(例如Flink、Hive)情况下,可以在相应的系统中进行处理,然后通过Kafka主题/DFS中间文件将其发送到Hudi表中。从概念上讲,数据处理管道仅由三个部分组成:输入处理输出,用户最终针对输出运行查询以便使用管道的结果。Hudi可以充当将数据存储在DFS上的输入或输出。Hudi在给定流处理管道上的适用性最终归结为你的查询在Presto/SparkSQL/Hive的适用性。

更高级的用例围绕增量处理的概念展开,甚至在 处理引擎内部也使用Hudi来加速典型的批处理管道。例如:Hudi可用作DAG内的状态存储(类似Flink使用的[rocksDB(https://ci.apache.org/projects/flink/flink-docs-release-1.2/ops/state_backends.html#the-rocksdbstatebackend))。这是路线图上的一个项目并将最终以Beam Runner的形式呈现。

Iceberg & Delta

对于与Iceberg和Delta的对比,可以看如下对比图(2019年9月之前由Qubole技术博客提供)。

Hudi社区并不想通过官方文档方式来比较与同为数据湖开源框架Iceberg和Delta的区别,因为这可能会让开发者觉得Hudi立场不中立,为保持更为中立的立场,社区更愿意将此比较交给开发者,让他们去选择适合自己的框架。

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
6月前
|
存储 人工智能 大数据
系统和32位系统的区别
系统和32位系统的区别
学生系统的各种限制
学生系统的各种限制
59 0
防沉迷系统
防沉迷系统
212 0
|
JavaScript 前端开发 Java
博客管理系统
博客管理系统
118 0
博客管理系统
|
Linux 芯片 C++
女朋友问我,系统咋装呀?
女朋友问我,系统咋装呀?
181 0
女朋友问我,系统咋装呀?
系统思考的介绍
3.3 系统思考的介绍 在控制理论中,分为开环控制系统和闭环控制系统。开环控制系统是不将控制的结果反馈回来影响当前控制的系统。闭环控制系统是将控制的结果反馈回来影响当前控制的系统。
1009 0
|
监控 大数据 安全
系统思考
最近发现一本关于提高系统思维能力的书,是一本你读起来很容易接受,逻辑很清楚的书,下面我就总结下,给大家参考下 背景 一般在我们工作或者生活的过程中都会碰到下面三中情况 遇到事情突然想不清楚 表达时说不清楚 学习的时候学的慢 以上的场景可能不是所有人都遇到过,但这个不是最关键的。
1956 0
系统思考与《第五项修炼》
系统思考与《第五项修炼》——《可以量化的管理学》 内容提要:彼得•圣吉通过《第五项修炼》将控制理论的正反馈和负反馈引入管理学,对管理学理论产生了巨大的影响。
1309 0