spark的三种模式的详细运行过程

原创 2016年11月11日 14:31:28

一、Standalone模式

1、使用SparkSubmit提交任务的时候(包括Eclipse或者其它开发工具使用new SparkConf()来运行任务的时候),Driver运行在Client;使用SparkShell提交的任务的时候,Driver是运行在Master上
2、使用SparkSubmit提交任务的时候,使用本地的Client类的main函数来创建sparkcontext并初始化它;
3、SparkContext连接到Master,注册并申请资源(内核和内存)。
4、Master根据SC提出的申请,根据worker的心跳报告,来决定到底在那个worker上启动StandaloneExecutorBackend(executor)
5、executor向SC注册
6、SC将应用分配给executor,
7、SC解析应用,创建DAG图,提交给DAGScheduler进行分解成stage(当出发action操作的时候,就会产生job,每个job中包含一个或者多个stage,stage一般在获取外部数据或者shuffle之前产生)。然后stage(又称为Task Set)被发送到TaskScheduler。TaskScheduler负责将stage中的task分配到相应的worker上,并由executor来执行
8、executor创建Executor线程池,开始执行task,并向SC汇报
9、所有的task执行完成之后,SC向Master注销


二、yarn client

1、spark-submit脚本提交,Driver在客户端本地运行;
2、Client向RM申请启动AM,同时在SC(client上)中创建DAGScheduler和TaskScheduler。
3、RM收到请求之后,查询NM并选择其中一个,分配container,并在container中开启AM
4、client中的SC初始化完成之后,与AM进行通信,向RM注册,根据任务信息向RM申请资源
5、AM申请到资源之后,与AM进行通信,要求在它申请的container中开启CoarseGrainedExecutorBackend(executor)。Executor在启动之后会向SC注册并申请task
6、SC分配task给executor,executor执行任务并向Driver(运行在client之上的)汇报,以便客户端可以随时监控任务的运行状态
7、任务运行完成之后,client的SC向RM注销自己并关闭自己


三、yarn cluster

1、spark-submit脚本提交,向yarn(RM)中提交ApplicationMaster程序、AM启动的命令和需要在Executor中运行的程序等
2、RM收到请求之后,选择一个NM,在其上开启一个container,在container中开启AM,并在AM中完成SC的初始化
3、SC向RM注册并请求资源,这样用户可以在RM中查看任务的运行情况。RM根据请求采用轮询的方式和RPC协议向各个NM申请资源并监控任务的运行状况直到结束
4、AM申请到资源之后,与对应的NM进行通信,要求在其上获取到的Container中开启CoarseGrainedExecutorBackend(executor),executor 开启之后,向AM中的SC注册并申请task
5、AM中的SC分配task给executor,executor运行task兵向AM中的SC汇报自己的状态和进度
6、应用程序完成之后(各个task都完成之后),AM向RM申请注销自己兵关闭自己


Spark集群三种部署模式的区别

目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN,其中,第一种类似于MapReduce 1.0所采用的模式,内...
  • u013063153
  • u013063153
  • 2016年12月14日 11:02
  • 3932

Spark的运行架构分析(二)之运行模式详解

在上一篇博客  spark的运行架构分析(一)中我们有谈到Spark的运行模式是多种多样的,那么在这篇博客中我们来具体谈谈Spark的运行模式...
  • Gamer_gyt
  • Gamer_gyt
  • 2016年07月05日 19:34
  • 5934

Spark的4种运行模式

Spark支持4种运行模式: 本地单机模式   本地单机模式下,所有的Spark进程均运行于同一个JVM中,并行处理则通过多线程来实现。在默认情况下,单机模式启动与本地系统的CPU核心数目相同...
  • caiandyong
  • caiandyong
  • 2015年10月18日 21:29
  • 5556

Spark Client和Cluster两种运行模式的工作流程

1.client mode: In client mode, the driver is launched in the same process as the client that submit...
  • SummerMangoZz
  • SummerMangoZz
  • 2017年05月22日 16:28
  • 1477

Spark internal - 多样化的运行模式(上)

Spark的运行模式多种多样,在单机上既可以以本地模式运行,也可以以伪分布式模式运行。而当以分布式的方式运行在Cluster集群中时,底层的资源调度可以使用Mesos 或者是Hadoop Yarn ,...
  • colorant
  • colorant
  • 2014年01月20日 10:43
  • 16348

Spark的四种运行模式(1.2.1)

转载:http://blog.cheyo.net/29.html 介绍 本地模式 Spark单机运行,一般用于开发测试。 Standalone模式 ...
  • zhangxinrun
  • zhangxinrun
  • 2017年01月18日 18:25
  • 2703

Spark运行模式(一)-----Spark独立模式

除了可以在Mesos或者YARN集群管理器上运行Spark外,Spark还提供了独立部署模式。你可以通过手动启动一个master和workers,或者使用提供的脚本来手动地启动单独的集群模式。你也可以...
  • happyAnger6
  • happyAnger6
  • 2015年07月26日 22:12
  • 28843

spark运行简单的demo程序

spark运行简单的demo程序 使用spark可以直接在命令行中启动spark-shell,然后在spark-shell中使用scala进行数据的处理。现在要介绍的是使用ide进行处理程序的编写。 ...
  • wild46cat
  • wild46cat
  • 2017年01月04日 17:30
  • 3569

Spark应用执行机制

Spark应用概念 Spark应用(Application)是用户提交的应用程序。执行模式又Local、Standalone、YARN、Mesos。根据Spark Application的Drive...
  • wwwxxdddx
  • wwwxxdddx
  • 2016年04月07日 16:51
  • 2357

Spark Standalone与Spark on YARN的几种提交方式

进来看!
  • Dr_Guo
  • Dr_Guo
  • 2016年04月26日 22:06
  • 5502
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spark的三种模式的详细运行过程
举报原因:
原因补充:

(最多只允许输入30个字)