概述
本文介绍大数据中间件Alluxio的基本概念。
什么是Alluxio
Alluxio以内存速度统一数据的访问。它是世界上第一个虚拟分布式存储系统(virtual distributed storage system)。它在计算框架和存储系统之间的搭起了一座桥梁,使应用程序能够通过统一的接口连接到多个存储系统。Alluxio以内存为中心的架构使数据访问速度比现有解决方案快几个数量级。
在数据生态系统中,Alluxio位于数据驱动的应用程序和各种持久化存储系统之间。
- 数据驱动的应用程序例如:Apache Spark,Presto,Tensorflow,Apache HBase,Apache Hive或Apache Flink。
- 持久化存储系统例如:Amazon S3,Google Cloud Storage,OpenStack Swift,GlusterFS,HDFS,IBM Cleversafe,EMC ECS,Ceph,NFS和阿里巴巴OSS等。
Alluxio统一在这些不同存储系统中的数据存储,为其上层数据驱动的应用程序提供统一的客户端API和全局命名空间。
Alluxio的使用架构图如下图所示:
Alluxio的优势
不管数据的格式或位置,Alluxio可以简化应用程序访问数据的方式,帮助数据洞察的能力。Alluxio的优势包括:
-
内存级速度的I/O访问:Alluxio可用作分布式共享缓存服务,因此与Alluxio交互的计算应用程序可以透明地缓存经常访问的数据,尤其是来自远程位置的数据,以提供基于内存的I/O吞吐量。
-
采用简化的云和对象存储:与传统文件系统相比,云和对象存储系统使用具有性能影响的不同语义。诸如目录列表和重命名之类的常见文件系统操作通常会导致显著的性能开销。在云存储中访问数据时,应用程序没有节点级别的位置或跨应用程序缓存。使用云或对象存储部署Alluxio可以缓解这些问题,因为将从Alluxio而不是底层云或对象存储中检索数据。
-
简化数据管理:Alluxio提供对多个数据源的单点访问。除了连接不同类型的数据源之外,Alluxio还使用户能够同时连接到同一存储系统的不同版本,例如多个版本的HDFS,而无需复杂的系统配置和管理。
-
轻松应用程序部署:Alluxio管理应用程序与文件或对象存储之间的通信,将数据访问请求从应用程序转换为底层存储接口。Alluxio兼容Hadoop。现有的数据分析应用程序,如Spark和MapReduce程序,可以在Alluxio之上运行而无需更改任何代码。
技术创新
Alluxio将三个关键创新领域结合在一起,提供一系列独特的功能。
- 全局命名空间:无论物理位置如何,Alluxio都可以作为多个独立存储系统的单一访问点。这提供了所有数据源的统一视图和应用程序的标准接口。有关详细信息,请参阅命名空间管理。
- 智能缓存:Alluxio集群充当连接存储系统中数据的读写缓存。可配置策略自动优化数据放置,以实现内存和磁盘(SSD / HDD)的性能和可靠性。缓存对用户是透明的,并使用缓冲来保持与持久存储的一致性。有关详细信息,请参阅Alluxio Storage Management。
- 服务器端API转换:Alluxio透明地从标准客户端接口转换为任何存储接口。Alluxio管理应用程序与文件或对象存储之间的通信,无需复杂的系统配置和管理。文件数据看起来像对象数据,反之亦然。
总结
本文对Alluxio的功能进行了介绍,接下来会对其设计架构进行介绍,并会介绍如何把spark运行在Alluxio之上。