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

本文由南京大学顾荣、施军翻译整理自Alluxio公司技术博客,由Alluxio公司授权CSDN首发(联合),版权归Alluxio公司所有,未经版权所有者同意请勿转载。

1.场景问题分析

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

对于上述这些问题的简洁而优雅的解决方案是采用一种上层按需计算集群结合底层对象存储的架构。这种架构通过解耦需要连续运行的持久化存储模块和只有发生分析任务才使用的计算模块来解决这些问题的根源。与上段提到的需要连续运行的整体化集群架构相比,这种架构具有如下优势:

  • 更高的存储性价比和可扩展性:对象存储的性价比很高,大多数对象存储服务提供商都为用户提供无缝扩展到任意数据量的功能。
  • 更高的计算性价比和系统弹性:仅在需要时才使用计算资源,并在必要时扩展计算集群规模以适应不同规模的分析任务。
  • 降低维护成本:计算集群变成一种消耗性资源,使用完后即可释放相关资源,并不需要长时间维护。用户也不需要担心数据的安全问题,因为通常提供给计算集群的数据是来自底层对象存储的数据副本。

事实上,这种计算和存储解耦的方案具备上述优势的同时,也存在着一个关键的缺点:性能损失。这是因为底层的对象存储通常并不是为高I / O吞吐量而设计的,因此会导致上层的计算分析任务可能会因为数据访问效率低下而整体性能变地低效。

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

2.架构示例图介绍

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

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

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

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

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

4.总结

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

时间: 2024-08-05 23:28:45

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

客户服务系统下的大数据分析服务

大数据的发展让企业看到了其巨大的商业价值, 8月19日,国务院常务会议通过<关于促进大数据发展的行动纲要>,就明确指出了大数据开放.共享和安全的重要性.对企业而言,大数据分三个层次:采集.存储.应用,如何将大数据转化为商业价值才是企业最终目标.企业客户服务系统通过对终端用户的信息进行整理.储存,生成数据分析报表.行为分析来创造.实现客户价值. 客户服务系统包含了客户自助.客服应答.客户信息储存.客户问题解决等多个方面,随着企业规模的增长和客户量的增长,企业需要一个能集成各渠道的系统软件来支撑它

采用alluxio提升MR job和Spark job性能的注意点

1. 介绍 2. 实验说明 2.1 实验环境 2.2 实验方法 2.3 实验负载 3. MapReduce on alluxio 3.1 读取10G文件(1G split) 3.2 读取20G文件(1G split) 3.3 读取60G文件(1G split) 3.4 读取60G文件(512MB split) 4. Spark on Alluxio 5. 关于使用alluxio来提升性能的注意点 5.1 alluxio是否以memory speed来进行读写? 5.2 如何使用alluxio提升

干货:如何利用CRM系统数据做用户画像?

企业在使用CRM系统一段时间后,系统就会积累很大的用户数据,那这些数据有什么用呢?当然有,我们可以对数据进行分析,做用户画像,从而更了解我们的客户,帮助企业做决策. 今天智云通CRM系统小编跟大家一起聊聊如何利用CRM系统数据做用户画像. 一步步来.当我们谈到了解我们的客户(understand our member base),无论是用户类群(segmentation) 还是用户肖像(persona) ,其实说白了是对两类客户认知的判断: l 现存客户 (Existing Customer)

电信行业数据分析服务(转)

电信行业数据分析服务(转) 转自https://www.douban.com/note/516353031/?type=rec&qq-pf-to=pcqq.group  数据分析服务 2015-09-10 09:55:19 上海天元项目数据分析师事务所,专业为企业编制各类项目报告和提供分析行业数据服务.联系电话:13917778657 1.网络管理和优化. (1)基础设施建设的优化.如利用数据分析实现基站和热点的选址以及资源的分配.可以通过分析话单和信令中用户的流量在时间周期和位置特征方面的分布

Catia使用LMT LicManager系统后的效果数据分析

Catia使用LMT LicManager系统后的效果数据分析 CATIA是英文Computer Aided Tri-Dimensional Interface Application 的缩写. 是世界上一种主流的 CAD/CAE/CAM 一体化软件.在70年代 Dassault Aviation 成为了第一个用户,CATIA 也应运而生.从1982年到1988年,CATIA 相继发布了1版本.2版本.3版本,并于1993年发布了功能强大的4版本,现在的CATIA 软件分为V4版本和 V5版本两

十个系统中必须禁止的服务

系统中很多服务和进程其实大家在平时都用不上,这些服务和进程会影响系统的速度和安全,小编今天要和大家分享十个系统中必须禁止的服务,包括要禁止的原因,大家不妨了解一下. 1.NetMeeting Remote Desktop Sharing:允许受权的用户通过NetMeeting在网络上互相访问对方.这项服务对大多数个人用户并没有多大用处,况且服务的开启还会带来安全问题,因为上网时该服务会把用户名以明文形式发送到连接它的客户端,黑客的嗅探程序很容易就能探测到这些账户信息. 2.Universal P

ITIL Foundation认证,提升你对IT服务体系的管控力

你是一个企业的IT运维人员吗?你们的IT运维工作是否杂而无章,是否责任不明?你是否对复杂的运维流程和客户的无尽抱怨束手无策?你是否希望在领导面前提出有效的合理建议,以提升企业的IT服务管理水平?ITIL就是您的解决方案. 对于企业实施ITIL,可以有助于最终进行完善的服务管理.在ITIL的各个流程管理中,可以直接与各个业务部门相互作用,实现对业务功能及流程进行重新设计,降低成本.缩短周转时间.提高质量和增进客户满意度. ITIL的实施,使信息系统部门能够对发生在财务.销售.市场.制造等业务上的流

Android系统Surface机制的SurfaceFlinger服务渲染应用程序UI的过程分析

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8079456 在前面的一系列文章中,我们学习了Android应用程序与SurfaceFlinger服务的关系,以及SurfaceFlinger服务的启动过程.初始化硬件帧缓冲区的过程.线程模型.SurfaceFlinger服务所做的一切都是为了给Android应用程序提服务的,即为Android应用程序渲染它们的UI.在本文中,我们就详细分析Su

Android系统从驱动到上层服务再到应用的两种服务架构方式

Android系统从驱动到上层服务再到应用的两种服务架构方式 1)使用类似sensor service的方式: 此方式用于,service的接口不想暴露给上层activity直接使用的情形例如sensor架构c/s结构,适合多个应用与单个服务通信,binder通信时,做connection的区分即可区分不同的client. 2)使用AIDL直接暴露接口的方式: 这个更适合单个应用与服务通信,多个应用与服务通信时,需要处理接口的重入问题.利用Binder实现的标准JNI,不用你去专门实现自己的JN