Spark核心技术之运行模式

通过Spark运行原理的讲解大家了解了Spark在底层的运行,那Spark的运行模式又是什么样的呢?

上一章节详细讲了Spark的运行原理,没有关注的童鞋可以关注加米谷大数据查看上一章节的详细内容。通过Spark运行原理的讲解大家了解了Spark在底层的运行,那Spark的运行模式又是什么样的呢?通过本文以下的讲解大家可以详细的学习了解。

1、Spark运行模式主要分为以下几种,如图所示。

Spark运行模式.png

2、Spark on Standalone 模式 Standalone模式如下图所示。

Standalone模式.png

3、Standalone运行过程

1)SparkContext连接到Master,向Master注册并申请资源(CPU Core and Memory);

2) uMaster根据SparkContext的资源申请要求和Worker心跳周期内报告的信息决定在哪个Worker上分配资源,然后在该Worker上获取资源,然后启动Executor; Executor向SparkContext注册;

3)SparkContext将Applicaiton代码发送给Executor;同时SparkContext解析Applicaiton代码,构建DAG图,并提交给DAGScheduler分解成Stage,然后以Stage(或者称为TaskSet)提交给TaskScheduler,TaskScheduler负责将Task分配到相应的Worker,最后提交给Executor执行;

4)Executor会建立Executor线程池,开始执行Task,并向SparkContext报告,直至Task完成;

5)所有Task完成后,SparkContext向Master注销,释放资源。如图所示。

SparkContext向Master注销.png

4、Spark on Yarn-Client 模式

1)Yarn-Client 第一步:Spark Yarn Client向Yarn的ResourceManager申请启动Application Master。同时在SparkContent初始化中将创建DAGScheduler和TASKScheduler;

2)Yarn-Client 第二步:ResourceManager收到请求后,在集群中选择一个NodeManager,为该应用程序分配第一个Container,要求它在这个Container中启动应用程序的Application Master;

3)Yarn-Client 第三步:Client中的SparkContext初始化完毕后,与ApplicationMaster建立通讯,向ResourceManager注册,根据任务信息向ResourceManager申请资源;

4)Yarn-Client 第四步:一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它在获得的Container中启动Executor,启动后会向Client中的SparkContext注册并申请Task;

5)Yarn-Client 第五步:Client中的SparkContext分配Task给Executor执行,Executor运行Task并向Driver汇报运行的状态和进度,以让Client随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务;

6)Yarn-Client 第六步:应用程序运行完成后,Client的SparkContext向ResourceManager申请注销并关闭自己。如图所示。

On Yarn-Client 运行模式.png

5、Spark on Yarn-Cluster模式 1)Yarn-Cluster 第一步:Spark Yarn Client向Yarn中提交应用程序,包括ApplicationMaster程序、启动ApplicationMaster的命令、需要在Executor中运行的程序等;

2)Yarn-Cluster 第二步:ResourceManager收到请求后,在集群中选择一个NodeManager,为该应用程序分配第一个Container,要求它在这个Container中启动应用程序的ApplicationMaster,其中ApplicationMaster进行SparkContext等的初始化;

3)Yarn-Cluster 第三步:ApplicationMaster向ResourceManager注册,这样用户可以直接通过ResourceManage查看应用程序的运行状态,然后它将采用轮询的方式通过RPC协议为各个任务申请资源,并监控它们的运行状态直到运行结束;

4)Yarn-Cluster 第四步:一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它在获得的Container中启动启动Executor,启动后会向ApplicationMaster中的SparkContext注册并申请Task;

5)Yarn-Cluster 第五步:ApplicationMaster中的SparkContext分配Task给Executor执行,Executor运行Task并向ApplicationMaster汇报运行的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务;

6)Yarn-Cluster 第六步:应用程序运行完成后,ApplicationMaster向ResourceManager申请注销并关闭自己。如下图所示。

On Yarn-Cluster运行模式.png

6、几种模式对比(Yarn-Cluster VS Yarn-Client VS Standalone)

官网描述如下图所示,有兴趣的童鞋可以去Apache官网查询。

模式对比.png

本文由 加米谷大数据 投稿至 数据分析网 并经编辑发表,内容观点不代表本站立场,如转载请联系原作者,本文链接:https://www.afenxi.com/50540.html 。

(0)
张乐的头像张乐编辑
上一篇 2018-03-27 13:35
下一篇 2018-07-20 01:46

相关文章

  • 无处不在的人工智能:Gartner发布2017年度新兴技术成熟度曲线

    2017年7月,Gartner公司发布了年度新兴技术成熟度曲线。Gartner认为,2017年技术成熟度曲线揭示了未来5-10年的三方面技术趋势,一是无处不在的人工智能、二是身临其境的体验、三是数字化平台,这三个方面的汇聚会带来有竞争力的商业生态。

    2017-08-09
    0
  • R语言突破大数据瓶颈:Shiny的Spark之旅

    摘要:我对如何开发和部署”Shiny-SparkR”的应用一直很感兴趣,本文目的将展示如何使用 SparkR 来驱动 Shiny 应用。 什么是SparkR SparkR是一个为R提供了轻量级的Spark前端的R包。 SparkR提供了一个分布式的data frame数据结构,解决了 R中的data frame只能在单机中使用的瓶颈,…

    2016-02-21
    0
  • 海纳百川 有容乃大:SparkR与Docker的机器学习实战

    题图为美国尼米兹核动力航空母舰 介绍 大数据时代,我们常常面对海量数据而头疼。作为学统计出身的人,我们想折腾大数据但又不想学习Hadoop或者Java,我们更倾向于把精力放在建模和算法设计上,SparkR和Docker的完美结合,让R的计算直接从一架战斗机的当兵作战华丽转变为一个航空母舰战斗群!不仅仅简化了分布式计算的操作,还简化了安装部署的环节,我们只几乎…

    2016-03-28
    0
  • 周鸿祎曝360人工智能野心:图像识别和大数据技术

    密切关注AlphaGo与李世石“人机大战”的周鸿祎日前发表内部信,称人工智能时代已经开启。而基于对未来的判断,360将从图像识别技术和大数据技术两方面进行战略规划,并分别在中国和美国成立了相应的技术开发团队。 周鸿祎认为,人工智能最终呈现的形态是多样化的。360将从两个方向进行战略规划:一个是图像识别技术,一个是大数据技术。基于该战略规划,360相继进行一系…

    2016-03-17
    0
  • 在选择数据库的路上,我们遇到过哪些坑?(2)

    你会怎么选择数据库,是关系数据库、XML 数据库、资源描述框架(RDF),还是图形数据库?

    2016-08-16
    0
关注我们
关注我们
分享本页
返回顶部