典型大数据计算框架分析.doc

上传人:壹****1 文档编号:558264232 上传时间:2023-03-08 格式:DOC 页数:12 大小:981.04KB
返回 下载 相关 举报
典型大数据计算框架分析.doc_第1页
第1页 / 共12页
典型大数据计算框架分析.doc_第2页
第2页 / 共12页
典型大数据计算框架分析.doc_第3页
第3页 / 共12页
典型大数据计算框架分析.doc_第4页
第4页 / 共12页
典型大数据计算框架分析.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《典型大数据计算框架分析.doc》由会员分享,可在线阅读,更多相关《典型大数据计算框架分析.doc(12页珍藏版)》请在金锄头文库上搜索。

1、典型大数据计算框架分析作者:赵晟姜进磊来源:中兴通讯技术第02期摘要:觉得大数据计算技术已逐渐形成了批量计算和流计算两个技术发展方向。批量计算技术重要针对静态数据的离线计算,吞吐量好,但是不能保证明时性;流计算技术重要针对动态数据的在线实时计算,时效性好,但是难以获取数据全貌。从可扩展性、容错性、任务调度、资源运用率、时效性、输入输出(IO)等方面对既有的主流大数据计算框架进行了分析与总结,指出了将来的发展方向和研究热点。核心词:大数据分类;大数据计算;批量计算;流计算;计算框架Abstract:Big data computing technologies have two typical

2、processing modes: batch computing and stream computing. Batch computing is mainly used for high-throughput processing of static data and does not produce results in real time. Stream computing is used for processing dynamic data online in real time but has difficulty providing a full view of data. I

3、n this paper, we analyze some typical big data computing frameworks from the perspective of scalability, fault-tolerance, task scheduling, resource utilization, real time guarantee, and input/output (IO) overhead. We then points out some future trends and hot research topics.Key words:big data; big

4、data computing; batch computing; stream computing; computing framework近年来,随着互联网进入Web 2.0时代以及物联网和云计算的迅猛发展,人类社会逐渐步入了大数据时代。根据维基百科的描述,所谓的大数据,是指所波及的数据量规模巨大,无法通过人工在合理时间内达到截取、管理、解决、并整顿成为人类所能解读的信息。大数据在带来发展机遇的同步,也带来了新的挑战,催生了新技术的发展和旧技术的革新。例如,不断增长的数据规模和数据的动态迅速产生规定必须采用分布式计算框架才干实现与之相匹配的吞吐和实时性,而数据的持久化保存也离不开分布式存储。

5、图1展示了大数据应用的一般架构,其中的核心部分就是大数据计算框架和大数据存储。大数据存储提供可靠的数据存储服务,在此之上搭建高效、可扩展、可自动进行错误恢复的分布式大数据计算框架,计算依赖存储,两者共同构成数据解决的核心服务。由于文献1已经对大数据存储进行总结,详述了文献系统、数据库系统、索引技术,因此文中将重点对大数据计算框架进行分析。1 大数据计算技术面临的问题与挑战大数据计算技术采用分布式计算框架来完毕大数据的解决和分析任务。作为分布式计算框架,不仅要提供高效的计算模型、简朴的编程接口,还要考虑可扩展性和容错能力。作为大数据解决的框架,需要有高效可靠的输入输出(IO),满足数据实时解决的

6、需求。目前大数据解决需要解决如下问题和挑战,这些问题和挑战也是对大数据计算框架进行分析的重要指标。(1)可扩展性:计算框架的可扩展性决定可计算规模,计算并发度等指标。既有计算框架一般采用主从模式的架构设计,便于集群的管理和任务调度,但主节点会成为系统的性能瓶颈,限制了可扩展性。此外,在既有弹性计算集群部署中,不断动态添加、删除计算节点,迅速平衡负载等也对系统可扩展性提出挑战。(2)容错和自动恢复:大数据计算框架需要考虑底层存储系统的不可靠性,支持浮现错误后自动恢复的能力。顾客不需要增长额外的代码进行快照等中间成果的备份,只需要编写相应的功能函数,就可以在有输入的条件下得到预期的输出,中间运营时

7、产生的错误对使用人员透明,由计算框架负责任务重做。(3)任务调度模型:大数据计算平台中往往存在多租户共同使用,多任务共同执行的状况。既要保证各顾客之间使用计算资源的公平性,又要保证整个系统合理运用资源,保持高吞吐率,还要保证调度算法足够简朴高效,额外开销小。因此调度器设计需要综合大量真实的任务运营成果,从全局的角度进行设计。(4)计算资源的运用率:计算资源的运用率代表机器可以实际发明的价值。数据中心运转时,能耗问题非常突出,设备和制冷系统都在消耗能源。由于不合理的架构设计,导致集群中非计算开销大,计算浮现忙等待的现象时有发生。高效的计算框架需要和硬件环境共同作用达到更高的计算资源运用率。(5)

8、时效性:数据的价值往往存在时效性,随着时间的推移,新数据不断产生,旧数据的运用价值就会减少。离线批量解决往往导致运算的时间长,达不到实时的数据解决。流计算方案减少了响应的时间,但是不可以获得数据的全貌。因此增量计算的措施是当今的一种解决思路。(6)高效可靠的IO:大数据计算中,IO开销重要分为两部分,序列化反序列化时数据在硬盘上读写的IO开销,不同节点间互换数据的网络IO开销。由于硬盘和网络的IO读写速率远远低于内存的读写速率,导致整个任务的执行效率减少,计算资源被挥霍。在既有的计算机体系构造下,尽量使用内存可以有效提高解决的速度,但是预取算法的合理性和内存的不可靠性都是需要考虑的问题。2 大

9、数据批量计算技术大数据批量计算技术应用于静态数据的离线计算和解决,框架设计初衷是为理解决大规模、非实时数据计算,更加关注整个计算框架的吞吐量。MapReduce低成本、高可靠性、高可扩展的特点减少了大数据计算分析的门槛,自Google提出以来,得到了广泛应用。在此基本上,人们设计杰出多的批解决计算框架,从编程模型、存储介质等角度不断提高批解决的性能,使其适应更多的应用场景。(1)MapReduce计算框架:MapReduce计算框架通过提供简朴的编程接口,在大规模便宜的服务器上搭建起一种计算和IO解决能力强大的框架,并行度高,容错性好,其开源项目Hadoop已经形成完整的大数据分析生态系统,并

10、在不断改善。可扩展性方面,通过引入新的资源管理框架YARN,减轻主节点的负载,集群规模提高,资源管理更加有效。任务调度方面,提出如公平调度2、能力调度3、延迟调度4等调度器,更加关注数据中心内资源使用的公平性、执行环境的异构性和高吞吐的目的。此外也采用启发式措施进行预测调度,可以实时跟踪节点负载变化,提供更优的执行序列和资源分派方案。容错性方面,MapReduce框架自身支持任务级容错,任务失败后会重新计算,但是对于Master节点的容错始终忽视,既有的解决措施采用备份的方式解决,通过共享存储同步数据,采用网络文献系统(NFS)或者Zookeeper的方式来支持共享存储。此外,MapReduc

11、e也已经添加了多平台支持,可以部署在图像解决单元(GPU)等高性能计算环境中。(2)Dryad计算框架:Dryad是构建微软云计算基本设施的核心技术。编程模型相比于MapReduce更具一般性用有向无环图(DAG)描述任务的执行,其中顾客指定的程序是DAG图的节点,数据传播的通道是边,可通过文献、共享内存或者传播控制合同(TCP)通道来传递数据,任务相称于图的生成器,可以合成任何图,甚至在执行的过程中这些图也可以发生变化,以响应计算过程中发生的事件。图2给出了整个任务的解决流程。Dryad在容错方面支持良好,底层的数据存储支持数据备份;在任务调度方面,Dryad的合用性更广,不仅合用于云计算,

12、在多核和多解决器以及异构集群上同样有良好的性能;在扩展性方面,可伸缩于多种规模的集群计算平台,从单机多核计算机到由多台计算机构成的集群,甚至拥有数千台计算机的数据中心。Microsoft借助Dryad,在大数据解决方面也形成了完整的软件栈,部署了分布式存储系统Cosmos5,提供DryadLINQ编程语言,使一般程序员可以容易进行大规模的分布式计算。(3)Spark计算框架:Spark是一种高效通用的分布式计算框架,采用基于DAG图的编程模型,提供了丰富的编程接口。不同于MapReduce只能通过串联多种任务实现复杂应用,Spark可以在DAG图中划分不同的阶段,完毕复杂应用的定义。在计算效率

13、方面,Spark将成果以及反复使用的数据缓存在内存中,减少了磁盘IO带来的开销,更合用于机器学习等需要迭代计算的算法;在容错性方面,Spark体现突出,数据以弹性分布式数据集(RDD)6的形式存在,依托Lineage的支持(记录RDD的演变),可以以操作本地集合的方式来操作分布式数据集。当RDD的部分分区数据丢失时,它可以通过Lineage获取足够的信息来重新运算和恢复丢失的数据分区。通过记录跟踪所有RDD的转换流程,可以保证Spark计算框架的容错性。资源管理及任务调度方面,Spark借助Mesos或者YARN来进行集群资源的管理,部署在集群中使用。Spark发展至今,已经形成了完整的软件栈

14、,在Spark的上层,已经可以支持可在分布式内存中进行迅速数据分析的Shark7、流计算Spark Streaming、机器学习算法库Mllib、面向图计算的GraphX等。(4)GraphLab计算框架:图计算框架GraphLab的提出是为理解决大规模机器学习问题。相比于信息传递接口(MPI),GraphLab提供了更简朴的编程接口,抽象的图模型使顾客不必关注进程间的通信。相比于MapReduce计算框架,GraphLab更适合解决各数据之间依赖限度强、数据与数据之间需要频繁计算和信息交互的场景。GraphLab提出的图计算理论和措施不仅解决了集群中图解决的扩展问题,也解决了单机系统中大规模

15、的图计算问题,可形成完整的面向机器学习的并行计算框架。但是,对于大规模自然图的解决,GraphLab仍然存在负载极不均衡、可扩展性差等缺陷,因而GraphLab团队进一步提出了PowerGraph8。PowerGraph并行的核心思想是根据边的规模对顶点进行分割并部署在不同的机器上,由于不需要将同一种节点所相应的所有边的信息载入单机的内存中,因而消除了单机内存的约束。在系统的容错性方面,PowerGraph采用检查点技术,将来也考虑使用节点的副本冗余来提高容错性,可以在提高计算效率的同步完毕迅速恢复。3 大数据流计算技术大数据批量计算技术关注数据解决的吞吐量,而大数据流计算技术更关注数据解决的实时性,可以更加迅速地为决策提供支持。大数据的流计算技术是由复杂事件解决(CEP)发展而来的,目前流计算的典型框架涉及Storm、S4、Samza、Spark Streaming等。(1)Storm计算框架:Storm提供了可靠的流数据解决,可以用于实时分析、在线机器学习、分布式远程过程调用(RPC),数据抽取、转换、加载(ETL)等。Storm运营顾客自定义的拓扑,不同于MapReduce作业,顾客拓扑永远运营,只要有数据进入就可以进行相应的解决。Storm采用主

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号