生态 | 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企业版本

目录
相关文章
|
8月前
|
人工智能 自然语言处理 安全
代码静态扫描工具集成与实践
代码静态扫描工具(Static Application Security Testing, SAST)是在不运行代码的情况下,通过分析源代码或二进制代码来发现潜在安全漏洞、代码缺陷和质量问题的工具
997 4
|
8月前
|
SQL 人工智能 数据挖掘
Apache Doris 4.0 AI 能力揭秘(二):为企业级应用而生的 AI 函数设计与实践
Apache Doris 4.0 原生集成 LLM 函数,将大语言模型能力深度融入 SQL 引擎,实现文本处理智能化与数据分析一体化。通过十大函数,支持智能客服、内容分析、金融风控等场景,提升实时决策效率。采用资源池化管理,保障数据一致性,降低传输开销,毫秒级完成 AI 分析。结合缓存复用、并行执行与权限控制,兼顾性能、成本与安全,推动数据库向 AI 原生演进。
843 0
Apache Doris 4.0 AI 能力揭秘(二):为企业级应用而生的 AI 函数设计与实践
|
9月前
|
SQL 存储 运维
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
本文介绍了 Apache Doris 在菜鸟的大规模落地的实践经验,菜鸟为什么选择 Doris,以及 Doris 如何在菜鸟从 0 开始,一步步的验证、落地,到如今上万核的规模,服务于各个业务线,Doris 已然成为菜鸟 OLAP 数据分析的最优选型。
550 2
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
|
8月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
689 6
|
8月前
|
安全 JavaScript 前端开发
安全漏洞检测集成及实践:SAST/DAST工具集成指南
通过合理集成和配置SAST/DAST工具,可以显著提升应用程序的安全性,并在开发早期发现和修复漏洞,降低安全风险和维护成本
873 4
|
8月前
|
机器学习/深度学习 边缘计算 数据可视化
MyEMS 深度解析:碳管理赋能与系统集成的实践路径
MyEMS 是一款集碳管理与能源优化于一体的开源系统,具备多标准碳核算、碳足迹可视化、碳成本分析等功能,助力企业实现精准碳减排。系统支持与工业、建筑、政务平台等多系统集成,打破数据孤岛,提升能效。依托活跃的开源社区与丰富实践案例,MyEMS 持续迭代,推动绿色转型。
493 1
|
9月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1579 1
|
10月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
1033 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
9月前
|
供应链 监控 搜索推荐
35页PPT|零售行业自助数据分析方法论:指标体系构建平台集成、会员与商品精细化运营实践
在零售行业环境剧变的背景下,传统“人找货”模式正被“货找人”取代。消费者需求日益个性化,购买路径多元化,企业亟需构建统一的指标体系,借助BI平台实现数据驱动的精细化运营。本文从指标体系构建、平台集成到会员与商品运营实践,系统梳理零售经营分析的方法论,助力企业实现敏捷决策与业务闭环。
35页PPT|零售行业自助数据分析方法论:指标体系构建平台集成、会员与商品精细化运营实践
|
11月前
|
机器学习/深度学习 数据采集 存储
朴素贝叶斯处理混合数据类型,基于投票与堆叠集成的系统化方法理论基础与实践应用
本文探讨了朴素贝叶斯算法在处理混合数据类型中的应用,通过投票和堆叠集成方法构建分类框架。实验基于电信客户流失数据集,验证了该方法的有效性。文章详细分析了算法的数学理论基础、条件独立性假设及参数估计方法,并针对二元、类别、多项式和高斯分布特征设计专门化流水线。实验结果表明,集成学习显著提升了分类性能,但也存在特征分类自动化程度低和计算开销大的局限性。作者还探讨了特征工程、深度学习等替代方案,为未来研究提供了方向。(239字)
309 5
朴素贝叶斯处理混合数据类型,基于投票与堆叠集成的系统化方法理论基础与实践应用

推荐镜像

更多