Spark生态系统走向成熟和应用.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

??

?

??

Spark生态系统走向成熟和应用

?

?

?

?

?

??

?

?

?

中国信息通信研究院泰尔规划研究所李曼于青利

目前,全社会都已经认识到数据作为一种资产具有的价值。而随着太数据的发展,人们对大数据处理的技术和手段也有了更高的要求。Spark作为一种功能强大的大数据处理技术,具有数据处理框架统一、计算高效、与其他技术良好兼容等特点,逐渐成熟,并已开始获得一些知名企业的使用。未来,Spark应用前景明朗,将会对大数据分析应用提供强大支持。

近年来,信息化技术继续发展,社交网络不断普及,智能终端越来越呈现多样性,网络特别是宽带加紧提速,传感器、RFID阅读器、导航终端等新型数据采集设备相继出现,视频数据(医疗影像、地理信息、监控录像等)大量积累,昭示着海量数据时代已经到来。

数据中蕴含大量有价值的信息和知识,有助于管理和决策。大数据不仅仅是指大量的复杂数据,它还描绘了一个正在快速涌现的生态系统,从新技术、新技能、新实践到一个崭新的商业模式,使企业和组织有能力对大量、不断增长、多样、多维、结构化和非结构化的数据进行管理和分析,并据此做出决策,并采取行动。数据累积和对数据分析的需求进一步驱动了数据分析和数据挖掘技术。

从大数据分析应用类型来看,目前大数据的处理方式可以分为三种类型:第一种是复杂的批量数据处理(batchdataprocessing),通常的时间跨度在数十分钟到数小时之间;第二种是基于历史数据的交互式查询(interactivequery),通常的时间跨度在数十秒到数分钟之间;第三种是基于实时数据流的数据处理(streamingdatapro-cessing),通常的时间跨度在数百毫秒到数秒之间。

对于以上三种情景,传统方式是可以利用MapReduce来进行批量数据处理,使用Impala进行交互式查询,采用Storm进行流式数据处理。对于多数大型企业和互联网公司来说,一般会同时遇到以上三种情景,使用传统的大数据处理方式会存在一些问题。例如,三种情景的输入输出数据无法无缝共享,需要进行格式相互转换;每一个开源软件都需要一个开发和维护团队,提高了成本;在同一个集群中对各个系统协调资源分配比较困难,等等。于是,一个基于内存计算的开源集群计算系统Spark成为人们破解难题的选择。

Spark已形成强大的大数据处理生态系统

Sparc提供全面的大数据处理技术

Spark由加州大学伯克利分校AMP实验室开发,可用来构建大型、低延迟的数据分析应用程序。目前,Spark已经发展成为包含众多子项目的大数据计算平台。伯克利将Spark的整个生态系统称为伯克利数据分析栈(BDAS)。其核心框架是Spark,同时BDAS涵盖多个子项目的集合,如SparkSQL、SparkStreaming、GraphX、MLlib等。BDAS利用基于内存的通用计算模型将批量处理、交互式查询和实时数据流处理三种情景一网打尽,且兼容支持HDFS和S3等分布式文件系统,可以部署在Yarn和Mesos等流行的集群资源管理器之上(BDAS构架如图l所示)。Spark生态圈以Spark为核心、以弹性分布式数据集(RDD)为基础,打造了一个基于内存计算的大数据平台,为人们提供了all-in-one的数据处理方案。

SparkCore是整个BDAS的核心组件,也是一个大数据分布式编程框架,不仅实现了MapReduce的算子map函数和reduce函数及计算模型,还提供更为丰富的算子,如filter、join、groupByKey等。Spark将分布式数据抽象为RDD,实现了应用任务调度、远程过程调用(RPC)、序列化和压缩,并为运行在其上的上层组件提供API。其底层采用Scala这种函数式语言书写而成,并且所提供的API深度借鉴Scala函数式的编程思想,提供与Scala类似的编程接口。图2为Spark的处理流程(主要对象为RDD)。Spark将数据在分布式环境下分区,然后将作业转化为有向无环图(DAG),并分阶段进行DAG的调度和任务的分布式并行处理。

SparkSQL提供在大数据上的SQL查询功能,SparkSQL使用Catalyst做查询解析和优化器,并在底层使用Spark作为执行引擎实现SQL操作。用户可以在Spark上直接书写SQL,相当于为Spark扩充了一套SQL算子,这无疑更加丰富了Spark的算子和功能,同时SparkSQL不断兼容不同的持久化存储(如HDFS、Hive等),为其发展奠定广阔的空间。

SparkStreaming通过将流数据按指定时间片累积为RDD,然后将每个RDD进行批处理,进而实现大规模的流数据处理。其吞吐量能够超越现有主流流处理框架Storm,并提供丰富的API用

您可能关注的文档

文档评论(0)

186****9898 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档