首页 首页 大数据 大数据入门 查看内容

Spark核心技术原理透视--Spark运行模式

木马童年 2018-9-14 21:23 49 0

通过Spark运行原理的讲解大家了解了Spark在底层的运行,那Spark的运行模式又是什么样的呢?通过本文以下的讲解大家可以详细的学习了解。 1、Spark运行模式主要分为以下几种,如图所示。 2、Spark on Standalone ...

通过Spark运行原理的讲解大家了解了Spark在底层的运行,那Spark的运行模式又是什么样的呢?通过本文以下的讲解大家可以详细的学习了解。

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

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

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注销,释放资源。如图所示。

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申请注销并关闭自己。如图所示。

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申请注销并关闭自己。如下图所示。

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

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

在不久的将来,多智时代一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏多智时代,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!

应用程序
0
为您推荐
大数据时代,主要需要什么类型的人才?

大数据时代,主要需要什么类型的人才?

什么是大数据,大数据是主要指的是,无法在可承受的时间范围内用常规软件工具进行捕捉…...

数据科学,数据分析和机器学习之间,有什么本质区别?

数据科学,数据分析和机器学习之间,有什么本质区别?

我们都知道机器学习,数据科学和数据分析是未来的发展方向。有些公司不仅利用大数据帮…...

什么样的人才是大数据人才呢?我们应该怎么定义和分类?

什么样的人才是大数据人才呢?我们应该怎么定义和分类

在未来世界,国家之间、区域之间甚至是公司之间的大数据人才的争夺战,将是愈演愈烈的…...

大数据技术怎么学习,在学习大数据之前,需要具备什么基础?

大数据技术怎么学习,在学习大数据之前,需要具备什么

  大数据又称黑暗数据,是指人脑无法处理的海量数据聚合成的信息资产,在民生、IT、…...

大数据现在处于什么阶段,入行大数据,需要学习哪些基础知识?

大数据现在处于什么阶段,入行大数据,需要学习哪些基

大数据的发展历程总体上可以划分为三个重要阶段,萌芽期、成熟期和大规模应用期…...

对于大数据开发的学习,最经典的学习路线是什么?

对于大数据开发的学习,最经典的学习路线是什么?

对于现代社会,大数据开发的重要性不言而喻,通过大量的数据处理、分析获取有价值的信…...