内容简介:hudi集成alluxio一、Alluxio?Alluxio 为数据驱动型应用和存储系统构建了桥梁, 将数据从存储层移动到距离数据驱动型应用更近的位置从而能够更容易被访问。这还使得应用程序能够通过一个公共接口连接到许多存储系统。Alluxio内存至上的层次化架构使得数据的访问速度能比现有方案快几个数量级
hudi集成alluxio
一、Alluxio?
Alluxio 为数据驱动型应用和存储系统构建了桥梁, 将数据从存储层移动到距离数据驱动型应用更近的位置从而能够更容易被访问。这还使得应用程序能够通过一个公共接口连接到许多存储系统。Alluxio内存至上的层次化架构使得数据的访问速度能比现有方案快几个数量级
1.对于用户应用程序和计算框架,Alluxio提供了快速存储,促进了作业之间的数据共享和局部性。当数据位于本地时,Alluxio可以以内存速度提供数据;当数据位于Alluxio时,Alluxio可以以计算集群网络的速度提供数据。第一次访问数据时,只从存储系统上读取一次数据。为了得到更好的性能,Alluxio推荐部署在计算集群上。 2.对于存储系统,Alluxio弥补了大数据应用与传统存储系统之间的差距,扩大了可用的数据工作负载集。当同时挂载多个数据源时,Alluxio可以作为任意数量的不同数据源的统一层。 Alluxio可以被分为三个部分: masters、workers以及clients。 一个典型的设置由一个主服务器、多个备用服务器和多个worker组成。客户端用于通过Spark或MapReduce作业、Alluxio命令行等与Alluxio服务器通信
二、apache hudi?
Apache Hudi使得您能在hadoop兼容的存储之上存储大量数据,同时它还提供两种原语,使得除了经典的批处理之外,还可以在数据湖上进行流处理。
这两种原语分别是:
-
Update/Delete记录 :Hudi使用细粒度的文件/记录级别索引来支持Update/Delete记录,同时还提供写操作的事务保证。查询会处理最后一个提交的快照,并基于此输出结果。
-
变更流 :Hudi对获取数据变更提供了一流的支持:可以从给定的时间点获取给定表中已updated/inserted/deleted的所有记录的增量流,并解锁新的查询姿势(类别)。
第一步:环境准备
参考官网安装搭建alluxio环境: https://www.alluxio.io/
第二步:执行
1、在hudi可以加载到的cores-site.xml 文件里面追加此配置
<property> <name>fs.alluxio.impl</name> <value>alluxio.hadoop.FileSystem</value> </property>
2、将此依赖添加进工程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
3、这个时候我们只需要把数据写入alluxio即可:使用deltastreamer的使用需要如下配置
--target-base-path alluxio://........
完成上述步骤就已经完成了把hudi数据写入了alluxio的工作。事实上这个时候数据还未从hdfs加载到alluxio,需要查询一次即可;
根据查询不同的hudi视图方式 1)可以使用hive sql查询 使用命令查询hive表结构 发现loaction 已经指向了alluxio 2)可以使用spark sql查询 spark.read.format("org.apache.hudi").option(xxx).load("alluxio://")
第三步:验证 在未进行查询的时候数据不会加载进alluxio,in-alluxio是0%,当进行一次查询之后数据从hdfs加载进aluxio,in-alluxio大于0%
第四步:是否做到alluxio与hudi完全可拔插? 目前hudi与开源版本alluxio无法完全做到可拔插:因为hudi依赖hive表进行某些视图的查询. 然而要把hive表的数据源从alluxio指向hdfs需要修改hive表的loaction,但是生产环境我们一般无法进行在线修改hive表的操作。 如果想不修改location可以使用alluxio企业版本
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Jenkins 持续集成综合实战
- Go 和 Android 集成实战
- Spring Boot集成Redis实战操作
- 持续集成之 Spring Boot 实战篇
- Java SpringBoot集成RabbitMQ实战和总结
- Spring Boot 项目实战(四)集成 Redis
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。