Spark体系结构与核心功能.pdfVIP

  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文档。上传文档
查看更多

1.Spark功能

SparkCoreSpark最基础的最的功能,主要包括:

SparkContext

通常而言,DriverApplication的执行与输出都是通过SparkContext来完成的,在正式提交

Application之前,首先需要初始化SparkContext。SparkContext隐藏了网络通信、分布式部署、消息

通信、能力、计算能力、缓存、测量系统、文件服务、Web服务等内容,应用程序开发者只需要使用

SparkContext的API完成功能开发。

SparkContext内置的DAGScheduler负责创建Job,将DAG中的RDD划分到不同的Stage,提交Stage等功

能。

SparkContext内置的TaskScheduler负责资源的申请、任务的提交及请求集群对任务的调度等工作。

体系

Spark优先考虑使用各节点的内存作为,当内存不足时才会考虑使用磁盘,这极减少了磁盘I/O,提

升了任务执行的效率,使得Spark适用于实时计算、流式计算等场景。此外,Spark还了以内存为的

高容错的分布式文件系统Tachyon(现在改名为Alluxio)供用户进行选择。Tachyon能够为Spark可

靠的内存级的文件共享服务。

计算引擎

计算引擎由SparkContext中的DAGScheduler、RDD以及具体节点上的Executor负责执行的Map和

Reduce任务组成。DAGScheduler和RDD虽然位于SparkContext,但是在任务正式提交与执行之前将

Job中的RDD组织成有向无关图(简称DAG)、并对Stage进行划分决定了任务执行阶段任务的数量、迭代计

算、shuffle等过程。

部署模式

由于单节点不足以足够的及计算能力,所以作为大数据处理的Spark在SparkContext的

TaskScheduler组件中了对Standalone部署模式的实现和YARN、Mesos等分布式系统的支

持。通过使用Local、Standalone、YARN、Mesos、kubernetes、Cloud等部署模式为Task分配计算资

源,提高任务的并发执行效率。除了可用于实际生产环境的Standalone、YARN、Mesos、kubernetes、

Cloud等部署模式外,Spark还了Local模式和local-cluster模式便于开发和调试。

2.Spark应用模块

为了扩大应用范围,Spark陆续增加了一些扩展功能,主要包括:

SparkSQL

由于SQL具有普及率高、学习成本特点,为了扩大Spark的应用面,因此增加了对SQL及Hive的支持。

SparkSQL的过程可以总结为:首先使用SQL语句解析器(SqlParser)将SQL转换为语法树(Tree),并

且使用规则执行器(RuleExecutor)将一系列规则(Rule)应用到语法树,最终生成执行计划并执行

的过程。其中,规则包括语法分析器(Analyzer)和优化器(Optimizer)。Hive的执行过程与SQL类

似。

SparkStreaming

SparkStreaming与ApacheStorm类似,也用于流式计算。SparkStreaming支持Kafka、Flume、

、MQTT、ZeroMQ、Kinesis和简单的TCP套接字等多种数据输入源。输入流(Receiver)

负责接入数据,是接入数据流的接口规范。Dstream是SparkStreaming中所有数据流的抽象,Dstream

可以被组织为DStreamGraph。Dstream本质上由一系列连续的RDD组成。

SparkGraphX

Spark的分布式图计算框架。GraphX主要遵循整体同步并行计算模式(BulkSynchronous

Parallell,简称BSP)下的Pregel模型实现。GraphX了对图的抽象Graph,Graph由顶点

(Vertex)、边(Edge)及继承了Edge的EdgeTriplet(添加了srcAttr和dstAttr用来保存源顶点和

目的顶点的属性)三种结构组成。GraphX目前已经封装了最短路径、网

文档评论(0)

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

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

1亿VIP精品文档

相关文档