Alluxio调研

Alluxio调研参考:Alluxio官网,腾讯云,CSDN一、Alluxio简介Alluxio是世界上第一个面向基于云的数据分析和人工智能的开源的数据编排技术。它为数据驱动型应用和存储系统构建了桥梁,将数据从存储层移动到距离数据驱动型应用更近的位置从而能够更容易被访问。这还使得应用程序能够通过一个公共接口连接到许多存储系统。Alluxio内存至上的层次化架构使得数据的访问速度能比现有方案快几个数量级。在大数据生态系统中,Alluxio位于数据驱动框架或应用(如ApacheSpark、Pr

大家好,欢迎来到IT知识分享网。

参考:Alluxio官网腾讯云CSDN

一、Alluxio简介

Alluxio调研

Alluxio 是世界上第一个面向基于云的数据分析和人工智能的开源的数据编排技术。 它为数据驱动型应用和存储系统构建了桥梁, 将数据从存储层移动到距离数据驱动型应用更近的位置从而能够更容易被访问。 这还使得应用程序能够通过一个公共接口连接到许多存储系统。 Alluxio内存至上的层次化架构使得数据的访问速度能比现有方案快几个数量级。

在大数据生态系统中,Alluxio 位于数据驱动框架或应用(如 Apache Spark、Presto、Tensorflow、Apache HBase、Apache Hive 或 Apache Flink)和各种持久化存储系统(如 Amazon S3、Google Cloud Storage、OpenStack Swift、HDFS、GlusterFS、IBM Cleversafe、EMC ECS、Ceph、NFS 、Minio和 Alibaba OSS)之间。 Alluxio 统一了存储在这些不同存储系统中的数据,为其上层数据驱动型应用提供统一的客户端 API 和全局命名空间。

优势:

  • 内存速度 I/O:Alluxio 能够用作分布式共享缓存服务,这样与 Alluxio 通信的计算应用程序可以透明地缓存频繁访问的数据(尤其是从远程位置),以提供内存级 I/O 吞吐率。此外,Alluxio的层次化存储机制能够充分利用内存、固态硬盘或者磁盘,降低具有弹性扩张特性的数据驱动型应用的成本开销。
  • 简化云存储和对象存储接入:与传统文件系统相比,云存储系统和对象存储系统使用不同的语义,这些语义对性能的影响也不同于传统文件系统。在云存储和对象存储系统上进行常见的文件系统操作(如列出目录和重命名)通常会导致显著的性能开销。当访问云存储中的数据时,应用程序没有节点级数据本地性或跨应用程序缓存。将 Alluxio 与云存储或对象存储一起部署可以缓解这些问题,因为这样将从 Alluxio 中检索读取数据,而不是从底层云存储或对象存储中检索读取。
  • 简化数据管理:Alluxio 提供对多数据源的单点访问。除了连接不同类型的数据源之外,Alluxio 还允许用户同时连接同一存储系统的不同版本,如多个版本的 HDFS,并且无需复杂的系统配置和管理。
  • 应用程序部署简易:Alluxio 管理应用程序和文件或对象存储之间的通信,将应用程序的数据访问请求转换为底层存储接口的请求。Alluxio 与 Hadoop 生态系统兼容,现有的数据分析应用程序,如 Spark 和 MapReduce 程序,无需更改任何代码就能在 Alluxio 上运行。

二、腾讯云弹性MapReduce(EMR)

目前越来越多的企业开始选择使用计算和存储分离的架构,以应对更低成本的要求,和兼顾资源扩展的灵活性。

Alluxio调研

计算存储分离架构

目前腾讯云弹性MapReduce(EMR)[1]支持了三种存储系统:EMR-HDFS、EMR-COS[2]、EMR-CHDFS[3],其中EMR-COS和EMR-CHDFS在EMR中都是开箱即用的原生支持计算存储分离的方案,其具体应用场景及特点如下:

元数据操作效率高,能够与HDFS相当,能够有效规避COS文件系统元数据操作耗时以及高频访问下可能引发不稳定的问题。但在实际使用场景中,因为可能存在多个数据存储源管理复杂,部分业务场景对数据源的IO访问密集造成网络压力大,访问不稳定等问题。所以我们基于Alluxio进一步优化计算和存储架构,更好的满足业务应用上的需求。

三、基于Alluxio优化计算存储分离架构

传统计算存储分离,解决了计算量和存储量不匹配问题, 实现了算力的按需使用,大幅节省了运维规划时间以及闲置的算力成本。但直接使用计算存储分离架构,也引入了新的问题:

在IO密集型的场景下,网络带宽会成为瓶颈, 可能导致计算 & 存储资源利用不充分;

数据本地化不够,导致很多shuffle过程的重复计算,造成部分浪费计算资源的浪费;

可能存在多种甚至异构的存储源,增加了管理难度。

为此,腾讯云EMR团队与Alluxio社区合作,引入最新alluxio2.3.0 Release版本进行深度优化,推出开箱即用的计算存储分离优化版本:EMR2.5.0/EMR3.1.0/EMR-TianQiong-1.0,解决上述问题。

1. 提供内存级 I/O能力

Alluxio能够用作分布式共享缓存服务,这样与Alluxio通信的计算应用程序可以透明地缓存频繁访问的数据(尤其是从远程位置),以提供内存级 I/O 吞吐率。此外,Alluxio的层次化存储机制能够充分利用内存、固态硬盘或者磁盘,降低具有弹性扩张特性的数据驱动型应用的成本开销。

2. 提高数据本地性

利用Alluxio提供的分布式缓存服务,在部署Alluxio数据节点(Alluxio-Worker)时和计算节点部署在一起,可以直接从数据节点中以内存级IO速度检索读取数据,而不是从底层云存储或对象存储中检索读取,提高了数据本地性。

3. 简化云存储和对象存储接入

与传统文件系统相比,云存储系统和对象存储系统使用不同的语义,这些语义对性能的影响也不同于传统文件系统。在云存储和对象存储系统上进行常见的文件系统操作(如列出目录和重命名)通常会导致显著的性能开销。当访问云存储中的数据时,应用程序没有节点级数据本地性或跨应用程序缓存。

4. 简化数据管理

Alluxio 提供对多数据源的单点访问。除了连接不同类型的数据源之外,Alluxio还允许用户同时连接同一存储系统的不同版本,如多个版本的HDFS以及云上COS/CHDFS,只需基于EMR配套的简单配置下发和管理管理功能。

在引入Alluxio后,EMR基于Alluxio的存算分离的整体架构变成了:

Alluxio调研

这样,EMR的计算引擎(Spark,MapReduce,Presto等)就可以统一通过Alluxio来提升性能,降低网络峰值带宽,以及简化数据管理。

四、性能评估及调优

为了分析理解使用Alluxio存储在主流查询引擎Spark性能上差异,我们使用大数据压测工具TPC-DS进行了一些性能压测。我们使用的环境及配置如下:

EMR版本:EMR-2.5.0;

选择组件:zookeeper-3.6.1,hadoop-2.8.5,hive-2.3.7,spark_hadoop2.8-3.0.0,tez-0.9.2,alluxio-2.3.0,knox-1.2.0;

压测配置,使用了1个EMR的Master节点和25个CORE节点,具体如下:

Alluxio调研

1. 带宽评估

Alluxio调研

Alluxio调研

从压测结果可以看到,能大幅优化计算存储分离网络带宽,节省峰值带宽(削峰)20%-50%,节省总带宽(10%-50%)。

2. 查询性能评估

Alluxio调研

Alluxio调研

从压测结果可以看到,在大部分场景下能优化性能,特别是IO密集型,优化性能5%-40%。

3. 性能调优及专项优化

为了更好满足计算存储分离场景,EMR团队针对Alluxio做了专项调优,具体包括:

(1)数据本地性

为了更好满足数据本地,EMR在部署Alluxio时,在core节点把alluxio-worker同计算节点部署在一起,这样yarn等计算服务节点可以在同一个节点中与alluxio-worker节点通信,大量提升了效率。

另一方面,结合alluxio已经提供的读写策略,结合存算分离场景优化了block.read.location.policy,writetype.default等策略,让alluxio的缓存能力更好满足本地性。

(2)元数据优化

Alluxio基于Presto实现了Catalog Service,并且实现了计算框架端的Connector,Alluxio可以感知并管理结构化数据的元数据,大大简化表级别的使用成本。同时,腾讯内部在大规模使用Alluxio时,我们发现Alluxio本身的inode元数据也面临着膨胀的风险。为此结合Alluxio提供的Catalog Service和Path缓存能力,优化了path.caching.thread和path.cache.capacity等策略。

更多meta具体优化可参考,社区meta优化[4]及catalog介绍[5]。

(3)Java GC的影响

Alluxio作为Java的进程,其GC的经常影响其性能表现,为此,EMR团队引入了 Tencent Kona,经过了内部大数据和AI等业务场景的验证,为JAVA生态提供专业持续的保障。Kona在GC线程调度优化,物理内存释放优化等方面有优秀表现,更多功能特性可见:Kona JDK[6]。

上述的这些能力和优化,在存算分离场景下,腾讯云EMR产品针对这种场景都已经直接提供了开箱即用的能力,直接在腾讯云EMR产品购买页创建,或者在已有支持了alluxio的EMR版本上安装,即可达到性能评估中效果。

五、总结

从上述的压测结果看到,一方面有效的降低了带宽峰值和总带宽,从而降低带宽成本,加速访问;另一方面,IO密集型场景下的性能也有不少提升,能更好的支持IO密集型场景下的业务。此次基于Alluxio的优化,让腾讯云弹性MapReduce(EMR)产品更好的支持存储计算分离架构,为用户更好的满足业务需求的同时,降低成本,且保持资源扩展的灵活性。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23869.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信