大数据Spark技术研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大数据Spark技术研究.doc

大数据Spark技术研究   摘要:文章从技术角度对Spark进行了深入探讨。首先提出了Hadoop的技术缺陷;然后提出了Spark的设计思想和系统架构,分析了Spark在Spark SQL、MLlib、Spark 流和GraphX方面技术处理过程。接着重点分析了Spark的六种运行模式的执行过程;最后分析了Spark当前应用现状和未来发展趋势。   关键词:大数据 Hadoop Spark Spark 流   中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2015)09-0000-00   大数据远不止大量的数据(TB)和处理大量数据的技术,它以一种前所未有的方式,通过对海量数据进行分析,获得有巨大价值的产品和服务[1]。然而面对庞大的数据来获得有价值的信息是一个巨大的挑战。为了克服上述困难,近几年来推出了Hadoop、PureData和Exadata等多种大数据系统分析平台,以Hadoop平台最为突出,深受用户的欢迎。但是随着应用的不断深入,Hadoop暴露出了它的局限性。主要体现在以下几方面:第一,操作过于单一,仅支持Map和Reduce两种操作;第二,迭代计算效率较低,尤其在机器学习和图形计算方面[2]。 2013年底由Apache 软件基金会提出的Spark框架技术较好地解决了这些问题。   1 Spark技术架构   1.1 Spark设计思想   Spark是一种基于HDFS的并行计算架构。主要思想是通过一种新的作业和数据容错方式来减少磁盘和网络的I/O开销 其核心技术是弹性分布式数据集(RDD),是指在一组存储计算机中的只读数据集合,这个数据集合可以在分区对象丢失后进行重建[5]。也就是说RDD的元素不一定需要存储在物理介质中,相反,一个RDD的处理进程包含了如何从可靠的数据存储中去获取足够的信息来对这个RDD进行处理。如果RDDS的任务节点失败,总可以进行重建[3]。   1.2 Spark系统架构   与MapReduce不同,Spark并不仅仅局限于编写map和reduce两个方法,它为用户提供了更为强大的内存计算模型,使得用户可以通过编程将数据读取到集群的内存当中,这样可以快速在内存中对数据集进行多次迭代,支持复杂的数据挖掘算法和图计算算法使用Scala语言开发,以Mesos作为底层的调度框架,可以和 Hadoop和Ec2紧密集成,直接读取HDFS或S3的文件进行计算并把结果写回HDFS或S3,是Hadoop和Amazon云计算生态圈的一部分,项目的core部分代码只有63个Scala文件,执行效率高效。Spark主要由四个模块组成:Spark SQL、MLlib、Spark 流和GraphX。Spark SQL为了兼容主流关系型数据库系统(RDBMS)可以允许用户编写SQL和HQL两种脚本执行查询,其核心组件是JavaSchemaRDD,它是一个类似于RDBMS的一个Table,由Row和Schema对象来描述Table中行对象和列的DataType。   2 Spark运行模式   2.1 Spark任务调度方式   Spark的运行模式有多种,主要由SparkContext的MASTER环境变量所获得的值来决定,有些模式还需要程序接口来配合辅助决定。但概括起来,Spark运行都以Spark-Context为总调度驱动程序,负责应用程序的资源分配,期间分别创建作业调度和任务调度两级模块。作业调度模块是基于阶段的高层调度模块,每个Spark 作业计算通常有多个阶段,每个阶段分解为一组任务集,以任务组的形式提交给底层任务调度模块来具体执行实际计算任务,任务调度模块负责启动实际任务,监控和汇报任务运行情况。如果分配任务成功,SparkContext会将应用程序代码给指定的执行者完成一个或多个任务[4]。   2.2 Spark运行模式类型   Spark的运行模式,归纳起来有六种。   (1)Local[M]。该模式使用 LocalBackend 调用TaskSchedulerImpl 实现。LocalBackend 响应Scheduler的receiveOffers请求,根据可用CPU Core的设定值[M]直接生成WorkerOffer资源返回给Scheduler,并通过Executor类在线程池中依次启动和运行Scheduler返回的任务列表。   (2)Standalone。该模式使用SparkDeploySchedulerBackend调用TaskSchedulerImpl来实现 ,而SparkDeploySchedulerBackend同时继承了CoarseGrainedSchedulerBackend。是一个在Akka Acto

文档评论(0)

jingpinwedang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档