利用Alluxio系统提升按需数据分析服务的性能

简介: Alluxio是部署在计算群集中的虚拟的分布式存储系统,为上层应用的I/O提供内存级访问速度的性能。
更多精彩内容参见 云栖社区大数据频道 https://yq.aliyun.com/big-data;此外,通过 Maxcompute及其配套产品,低廉的大数据分析仅需几步,详情访问 https://www.aliyun.com/product/odps

在很多大数据应用场景中,某些具体的处理问题通常只涉及到整体数据集的一个子集或部分数据。这导致长时间占用大规模集群的整体数据分析方式的资源有效利用率较低,并且总体代价较高,尤其在系统采用计算和存储并置(co-locate)部署架构的场景下各位严重。另外,在很多即席查询和计算应用中,数据的分析任务通常由上层用户零散地给出,与用于处理管道数据和流数据的连续运行分析任务不同,这种零散的分析任务会造成集群的计算能力有些时间段不能被充分利用。另一方面,集群的存储容量必须容纳可能被访问到的任何数据,尽管实际上每次需要使用的工作集合只是整体数据的一小部分。最后,集群本身还需要大量精心的维护管理工作,以确保集群使用者之间的隔离和性能不受彼此太多影响。    

对于上述这些问题的简洁而优雅的解决方案是采用一种上层按需计算集群结合底层对象存储的架构。这种架构通过解耦需要连续运行的持久化存储模块和只有发生分析任务才使用的计算模块来解决这些问题的根源。与上段提到的需要连续运行的整体化集群架构相比,这种架构具有如下优势:
  • 更高的存储性价比和可扩展性:对象存储的性价比很高,大多数对象存储服务提供商都为用户提供无缝扩展到任意数据量的功能。
  • 更高的计算性价比和系统弹性:仅在需要时才使用计算资源,并在必要时扩展计算集群规模以适应不同规模的分析任务。
  • 降低维护成本:计算集群变成一种消耗性资源,使用完后即可释放相关资源,并不需要长时间维护。用户也不需要担心数据的安全问题,因为通常提供给计算集群的数据是来自底层对象存储的数据副本。
事实上,这种计算和存储解耦的方案具备上述优势的同时,也存在着一个关键的缺点:性能损失。这是因为底层的对象存储通常并不是为高I / O吞吐量而设计的,因此会导致上层的计算分析任务可能会因为数据访问效率低下而整体性能变地低效。

幸运的是新架构存在的这个问题可以通过在计算集群上部署Alluxio得到很好的解决。通过引入Alluxio,可以使得计算任务的I/O速度达到内存级别,并且不需要维护长时间运行的集群或昂贵的前期投入成本。

1. 架构示例图介绍

b648ec977ae516ac8b00506abe7ce12969b8c6ef

上图显示了利用Alluxio提升按需数据分析服务性能的架构图,从图中可以看出Alluxio与按需使用的计算集群部署在一起,从而减少计算集群频繁访问远程存储的耗时。

2. 结合Alluxio系统架构的优势分析

Alluxio是部署在计算群集中的虚拟的分布式存储系统,为上层应用的I/O提供内存级访问速度的性能。 通过Alluxio虚拟化底层存储系统,使得任何基于Alluxio API接口(Alluxio提供HDFS兼容接口)编写的计算应用程序都能自动地访问用任何或多个底层存储系统,而不需要修改任何代码。此外,Alluxio是一个设计为可横向扩展的分布式存储系统,这意味着通过部署更多的机器来轻松地存储更大的数据集并提高访问性能。

事实上,部署和使用Alluxio对上层应用程序而言是简单和透明的。应用程序还是不断地访问数据,就好像作业直接访问的是远程存储上的数据,Alluxio会智能地将热数据保存在计算集群的内存中以供后续读取。整个过程对于应用程序是透明的,并且不需要进行手动ETL。一旦数据进入Alluxio,它将对集群的所有应用程序可用,因此在同一数据集被多次使用的场景中,应用的性能会大幅提高。

Alluxio为用户提供较高的灵活性和效率。任何需要持久化的结果或转换都可以通过Alluxio直接完成,Alluxio可以将数据同步传播到底层存储系统,以确保数据不会因为节点故障而丢失。此外,用户还可以选择仅在Alluxio内存中存储临时数据或中间数据,从而允许计算任务对这些缓存的数据进行内存级速度访问。

3. 总结

相比于长期运行的计算分析集群高昂的成本和维护工作量,与对象存储结合使用的按需计算集群的架构是一个更简洁和更具性价比的服务解决方案。通过在计算集群中并置(co-locate)部署Alluxio和计算框架,我们克服了这种按需集群模型的关键性的性能缺点。Alluxio系统的架构设计使其成为大数据软件栈中提供此核心功能的一个很好的选择。

版权申明:本文由南京大学顾荣、黄志翻译整理自Alluxio公司技术博客,由Alluxio公司授权云栖社区及CSDN首发(联合),版权归Alluxio公司所有,未经版权所有者同意请勿转载。
相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
8月前
|
数据采集 Web App开发 数据挖掘
飞桨x昇腾生态适配方案:07_性能数据分析
本文介绍了性能调优的全流程,包括分析、定位与优化。通过 profiling 工具采集算子级性能数据,定位计算与调度通信瓶颈。针对计算时间过长问题,可通过升级算子或提交工单解决;调度优化则关注重复编译,关闭在线编译或使用 aclnn 算子可提升效率。数据采集使用 paddlepaddle 的 profiler 工具,结合 msprof 解析生成的性能数据,重点分析 op_statistic_*.csv 和 op_summary_*.csv 文件,通过关键字段(如 Ratio、Total Time、Task Duration 和 Task Wait Time)量化性能瓶颈并实施优化策略。
329 10
|
Rust 数据挖掘 数据处理
Polars库:数据分析的新星,性能与易用性的完美结合
Polars库:数据分析的新星,性能与易用性的完美结合
823 1
|
数据挖掘 关系型数据库 Serverless
利用数据分析工具评估特定业务场景下扩缩容操作对性能的影响
通过以上数据分析工具的运用,可以深入挖掘数据背后的信息,准确评估特定业务场景下扩缩容操作对 PolarDB Serverless 性能的影响。同时,这些分析结果还可以为后续的优化和决策提供有力的支持,确保业务系统在不断变化的环境中保持良好的性能表现。
440 154
|
10月前
|
数据采集 运维 监控
数据分析异步进阶:aiohttp与Asyncio性能提升
本项目基于aiohttp与Asyncio开发异步爬虫,目标采集今日头条新闻数据。初期因网站限制机制导致请求异常,通过设置代理IP、Cookie和UserAgent解决拦截问题,并优化异步任务调度与异常捕获提升性能。方案包括动态代理池、统一请求头配置及日志监控,确保高并发下的稳定性。示例代码展示代理IP、请求头设置与错误处理方法,为类似项目提供参考。
293 1
数据分析异步进阶:aiohttp与Asyncio性能提升
|
数据采集 机器学习/深度学习 数据可视化
构建高效数据分析系统的关键技术
【10月更文挑战第5天】构建高效数据分析系统的关键技术
223 0
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
893 4
|
数据采集 机器学习/深度学习 数据可视化
【优秀python web系统毕设】基于python的全国招聘数据分析可视化系统,包括随机森林算法
本文介绍了一个基于Python的全国招聘数据分析可视化系统,该系统利用数据挖掘技术、随机森林算法和数据可视化技术,从招聘网站抓取数据,进行处理、分析和预测,帮助用户洞察招聘市场,为求职者和企业提供决策支持。
990 3
|
12月前
|
机器学习/深度学习 数据采集 人工智能
设计文档:智能化医疗设备数据分析与预测维护系统
本系统的目标是构建一个基于人工智能的智能化医疗设备的数据分析及预测维护平台,实现对医疗设备运行数据的实时监控、高效处理和分析,提前发现潜在问题并进行预防性维修,从而降低故障率,提升医疗服务质量。
|
12月前
|
Cloud Native 关系型数据库 MySQL
无缝集成 MySQL,解锁秒级数据分析性能极限
在数据驱动决策的时代,一款性能卓越的数据分析引擎不仅能提供高效的数据支撑,同时也解决了传统 OLTP 在数据分析时面临的查询性能瓶颈、数据不一致等挑战。本文将介绍通过 AnalyticDB MySQL + DTS 来解决 MySQL 的数据分析性能问题。
|
SQL 数据挖掘 关系型数据库
性能碾压pandas、polars的数据分析神器来了
性能碾压pandas、polars的数据分析神器来了
844 2