生态 | Apache Hudi集成Alluxio实践

简介: 笔记

1. 什么是Alluxio


Alluxio为数据驱动型应用和存储系统构建了桥梁, 将数据从存储层移动到距离数据驱动型应用更近的位置从而能够更容易被访问。这还使得应用程序能够通过一个公共接口连接到许多存储系统。Alluxio内存至上的层次化架构使得数据的访问速度能比现有方案快几个数量级。

对于用户应用程序和计算框架,Alluxio提供了快速存储,促进了作业之间的数据共享和局部性。当数据位于本地时,Alluxio可以以内存速度提供数据;当数据位于Alluxio时,Alluxio可以以计算集群网络的速度提供数据。第一次访问数据时,只从存储系统上读取一次数据。为了得到更好的性能,Alluxio推荐部署在计算集群上。

对于存储系统,Alluxio弥补了大数据应用与传统存储系统之间的差距,扩大了可用的数据工作负载集。当同时挂载多个数据源时,Alluxio可以作为任意数量的不同数据源的统一层。

Alluxio可以被分为三个部分:masters、workers以及clients。一个典型的设置由一个主服务器、多个备用服务器和多个worker组成。客户端用于通过Spark或MapReduce作业、Alluxio命令行等与Alluxio服务器通信。

50.png


2. 什么是Apache Hudi


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

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

51.png


3. 步骤


3.1 环境准备

参考官网安装搭建alluxio环境:https://www.alluxio.io/


3.2 执行

在hudi可以加载到的cores-site.xml 文件里面追加此配置

<property>
  <name>fs.alluxio.impl</name>
  <value>alluxio.hadoop.FileSystem</value>
</property>

将此依赖添加进工程pom.xml

<dependency>
  <groupId>org.alluxio</groupId>
  <artifactId>alluxio-shaded-client</artifactId>
  <version>2.2.1</version>
</dependency>

用户可以把jar包放在spark可以加载的地方或者通过以下方式引入

--jars alluxio-shaded-client-2.2.1.jar

这时只需要把数据写入alluxio即可,使用deltastreamer的使用需要如下配置

--target-base-path alluxio://........

完成上述步骤就已经完成了把hudi数据写入了alluxio的工作。事实上这个时候数据还未从hdfs加载到alluxio,需要查询一次即可;查询不同的hudi视图方式

  • 可以使用hive sql查询。使用命令查询hive表结构发现loaction已经指向了alluxio
  • 可以使用spark sql查询。spark.read.format("org.apache.hudi").option(xxx).load("alluxio://")

3.3 验证

验证在未进行查询的时候数据不会加载进alluxio,in-alluxio是0%,当进行一次查询之后数据从hdfs加载进alluxio,in-alluxio大于0%。

52.png


4. 问题


4.1 能否做到Alluxio与Hudi完全可拔插?

目前Hudi与开源版本alluxio无法完全做到可拔插。因为hudi依赖hive表进行某些视图的查询,然而要把hive表的数据源从alluxio指向hdfs需要修改hive表的loaction,但是生产环境我们一般无法进行在线修改hive表的操作。如果想不修改location可以使用alluxio企业版本

目录
相关文章
|
3月前
|
SQL 人工智能 数据挖掘
Apache Doris 4.0 AI 能力揭秘(二):为企业级应用而生的 AI 函数设计与实践
Apache Doris 4.0 原生集成 LLM 函数,将大语言模型能力深度融入 SQL 引擎,实现文本处理智能化与数据分析一体化。通过十大函数,支持智能客服、内容分析、金融风控等场景,提升实时决策效率。采用资源池化管理,保障数据一致性,降低传输开销,毫秒级完成 AI 分析。结合缓存复用、并行执行与权限控制,兼顾性能、成本与安全,推动数据库向 AI 原生演进。
311 0
Apache Doris 4.0 AI 能力揭秘(二):为企业级应用而生的 AI 函数设计与实践
存储 数据管理 物联网
257 0
存储 SQL 分布式计算
165 0
|
4月前
|
SQL 存储 运维
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
本文介绍了 Apache Doris 在菜鸟的大规模落地的实践经验,菜鸟为什么选择 Doris,以及 Doris 如何在菜鸟从 0 开始,一步步的验证、落地,到如今上万核的规模,服务于各个业务线,Doris 已然成为菜鸟 OLAP 数据分析的最优选型。
313 2
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
|
9月前
|
存储 安全 数据挖掘
天翼云:Apache Doris + Iceberg 超大规模湖仓一体实践
天翼云基于 Apache Doris 成功落地项目已超 20 个,整体集群规模超 50 套,部署节点超 3000 个,存储容量超 15PB
522 2
天翼云:Apache Doris + Iceberg 超大规模湖仓一体实践
|
9月前
|
存储 分布式数据库 Apache
小米基于 Apache Paimon 的流式湖仓实践
小米基于 Apache Paimon 的流式湖仓实践
245 0
小米基于 Apache Paimon 的流式湖仓实践
|
10月前
|
存储 分布式数据库 Apache
小米基于 Apache Paimon 的流式湖仓实践
本文整理自Flink Forward Asia 2024流式湖仓专场分享,由计算平台软件研发工程师钟宇江主讲。内容涵盖三部分:1)背景介绍,分析当前实时湖仓架构(如Flink + Talos + Iceberg)的痛点,包括高成本、复杂性和存储冗余;2)基于Paimon构建近实时数据湖仓,介绍其LSM存储结构及应用场景,如Partial-Update和Streaming Upsert,显著降低计算和存储成本,简化架构;3)未来展望,探讨Paimon在流计算中的进一步应用及自动化维护服务的建设。
571 0
小米基于 Apache Paimon 的流式湖仓实践
|
11月前
|
存储 运维 监控
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
中信银行信用卡中心每日新增日志数据 140 亿条(80TB),全量归档日志量超 40PB,早期基于 Elasticsearch 构建的日志云平台,面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此使用 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。
590 3
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
|
消息中间件 Java Kafka
什么是Apache Kafka?如何将其与Spring Boot集成?
什么是Apache Kafka?如何将其与Spring Boot集成?
632 5
|
存储 消息中间件 分布式计算
某全球领先网络解决方案提供商:统一 Trino、Pinot、Iceberg 及 Kyuubi,探索 Apache Doris 的改造实践
某全球领先网络解决方案提供商早期架构面临架构复杂、数据冗余存储、运维困难、资源利用率低、数据时效性差等问题。因此,引入 Apache Doris 替换了 Trino、Pinot 、 Iceberg 及 Kyuubi 技术栈,依赖于 Doris 的实时数据湖能力及高性能 OLAP 分析能力,统一数据湖仓及查询分析引擎,显著提升了查询性能及系统稳定性,同时实现资源成本降低 30%。
372 8
某全球领先网络解决方案提供商:统一 Trino、Pinot、Iceberg 及 Kyuubi,探索 Apache Doris 的改造实践

热门文章

最新文章

推荐镜像

更多