使用Alluxio提升HDFS集群的性能和SLA稳定性

  • 时间:
  • 浏览:0
  • 来源:5分11选5APP下载_5分11选5APP官方

Alluxio是世界上第有一八个 以内存为中心的虚拟的分布式存储系统。它为上层计算框架和底层存储系统构建了桥梁,统一了数据访问的土妙招,使得数据的访问效率能比现有常规方案高出十几块 数量级。Hadoop Distributed File System(HDFS)是有一八个 用来存储大规模数据的分布式存储系统。HDFS推广了计算向数据迁移的模式,以及计算和存储同去部署的存储架构。

该实验在有一八个 不同的软件栈上进行,其中有一八个 使用Alluxio (即Spark + Alluxio + HDFS),另外有一八个 不使用Alluxio (即Spark + HDFS)。所有的实验都运行在公有云虚拟机实例上。总的数据集大小是集群可用内存的三倍。

场景1



在第有一八个 场景中,周作业和月作业一定会 IO密集型作业。Alluxio对这這個 作业的性能提升都很明显。对于周作业,热数据都需要确保完全存储在Alluxio内存中,大伙 都需要以内存级效率读取数据,从而持续地加速上层作业。事实上,大伙 都需要发现此时的性能瓶颈为I/O的作业变成了CPU为性能瓶颈。另外,在不使用Alluxio的情况下,作业执行性能的波动范围较大(见图中用红线标出的最小和最大范围),甚至机会比使用Alluxio的情况慢10倍以上。这是机会操作系统页缓存缓存数据的不可预测性意味的。机会数据量大于内存总容量的缘故,使用Alluxio给月作业带来的性能提升不如周作业明显。尽管大伙 都需要通过Spark静态地划分CPU和内存资源(针对Spark task而言,并非与Alluxio内存混淆),因此大伙 没办法 细粒度的控制I/O资源,比如磁盘的访问。在不使用Alluxio的情况下,這個 作业的性能都被I/O所限制,当数据沒有操作系统缓存中时這個 作业一定会受限于I/O。使用Alluxio的情况下,月作业都需要完全利用磁盘效率,机会周作业从内存直接读取数据而需要使用磁盘效率。

Alluxio在共享环境中的优势为了模拟使用各种不同冷热数据的多租户环境,大伙 设置了以下实验:

Alluxio提供了可预测的资源划分和资源使用,使得系统管理员都需要对外提供稳定的性能保证。此外,Alluxio都需要给共享存储资源的计算集群带来显著的性能收益。使用Alluxio的优势随着集群中需要访问数据的作业数量增多会更加明显。总的来说,当Alluxio使用在计算和存储同去部署的环境中时,都需要带来两点关键的性能收益:

大伙 使用Spark2.0来完成计算作业,并对比2种软件栈下作业的执行性能。第這個 软件栈是将Spark作业直接运行在HDFS的数据上,另這個 是将Spark作业运行在使用HDFS作为底层存储系统的Alluxio的数据上。

场景4



场景3





第八个场景中,月作业仍然是I/O密集型的,因此周作业变为CPU密集型的。這個 场景下,Alluxio还是同去提高了這個 任务的性能。周作业得益于Alluxio带来的内存级效率的I/O,因此性能提升没因此的IO密集型作业明显。机会,此时的性能主要受机器的CPU吞吐量影响。然而,月作业在使用Alluxio的情况下表现出极大的优势,机会场景1中月作业的性能影响因素在此场景下仍然适用。此外,周作业对操作系统缓存的低效使用意味了更多磁盘资源的竞争,大大降低了月作业的执行性能。



在最后有一八个 场景中,月作业和周作业一定会 CPU密集型的。在這個 情况下,Alluxio带来的性能提升不明显,这是机会這個 任务中I/O吞吐量都一定会 瓶颈。然而,通过持续地管理在内存中的数据,Alluxio使得作业的性能更为稳定。

版权申明:本文由南京大学顾荣等专家翻译分派自Alluxio公司技术博客,由Alluxio公司授权云栖社区及CSDN首发(联合),版权归Alluxio公司所有,未经版权所有者同意请勿转载。

Spark持久化Spark這個 提供临时持久化数据的选项,需要使用這個 内外部系统。然而,什么机制被限制在单个SparkContext中,阻碍了多个用户受益于单个用户持久化在内存中的数据。结果是每个SparkContext都消耗系统资源(内存、磁盘)存储人个所有的数据,这在共享的环境中十分低效,尤其是当一定量的内存被并没办法 的消耗的情况下。

操作系统缓存/页缓存操作系统会自动尝试利用机器的内存来加速磁盘I/O。当重复地在同一数据集上运行任务(该数据集并能完全放到 内存中),操作系统缓存会比较高效,能提供和Alluxio相当的性能优化效果。然而,当遇到更大的数据集机会访问不同数据集的任务同去运行时,性能机会有很大的变化,平均情况下要比类式于于Alluxio的数据感知系统低效什么都 。



在第有一八个 场景中,月作业是CPU密集型的,周作业是I/O密集型的。Alluxio极大地加速了周作业机会周作业的数据完全在内存中。性能瓶颈为I/O的作业机会被Alluxio加速成性能瓶颈为CPU的作业。大伙 都需要看得人CPU密集型的月作业的执行性能一定会 所提升,机会使用Alluxio除理了周作业与月作业竞争磁盘资源。

场景2



在有一八个 共享的计算集群中,用户在一段时间内总是会在类式于的数据集上运行计算任务。类式于,這個 数据科学家机会会想尝试就是我一周分派的数据中挖出来這個 价值。同去,少每段用户会访问不总是使用的数据集,比如利用前有一八个 月分派的数据生成报告。因此,为了优化计算任务的性能,都需要将数据存储在内存中。然而,集群的内存总量是有限的,并非能存储所有的数据,这说明需要有一八个 分布式内存管理系统。目前有這個 机会实现的系统可供选折 。

Alluxio使用Alluxio,你都需要基于数据的特点来显式地管理数据,类式于数据的访问频率。这使得系统都需要将热点数据显式地保居于内存中,以加速访问什么热点数据的作业。此外,Alluxio提供了稳定的性能,都需要保证整个系统提供的服务质量的稳定性。