Spark基础之:集群角色以及任务提交流程

Spark基础之:集群角色以及任务提交流程,第1张

Spark基础之:集群角色以及任务提交流程

Spark集群角色以及任务提交流程

一、Spark主要角色介绍

1、Spark主要角色

MasterWorkerDriverExecutor 2、yarn主要角色

资源管理层面任务计算层面 二、Spark提交任务流程

1、Spark On Standalone2、Spark On Yarn

client模式cluster模式 2、Spark On Yarn原理
本篇主要介绍两块内容:
一、Spark集群主要角色以及每个角色的主要功能,包含Spark自身角色以及Spark运行在Yarn(Spark on Yarn)上的角色。
二、Spark运行时任务提交的流程。

一、Spark主要角色介绍

Spark Application在集群上运行时,主要由四个部分组成,分别是:Master、Worker、Driver、Executor

1、Spark主要角色 Master

集群的大管家,负责集群的资源管理和分配

Worker

单个机器的管家,负责在单个服务器上提供运行容器,管理当前服务器资源

Driver

单个Spark任务的管理者,管理Executor上的任务执行和任务的分配。类似Yarn的ApplicationMaster。

Executor

具体干活的进程,Spark的工作任务(Task)都由Executor来负责执行。

2、yarn主要角色

yarn的主要角色有四个,从资源管理层面和任务计算层面两个层面去看

资源管理层面

集群的资源管理者:ResourceManager单机的资源管理者:NodeManager 任务计算层面

单任务管理者:Applicationmaster单任务执行者:Task(容器内计算框架的工作角色)
二、Spark提交任务流程 1、Spark On Standalone

    spark集群启动后,Worker向Master注册信息

    spark-submit命令提交程序后,driver和application也会向Master注册信息

    创建SparkContext对象:主要的对象包含DAGScheduler和TaskScheduler

    Driver把Application信息注册给Master后,Master会根据App信息去Worker节点启动Executor

    Executor内部会创建运行task的线程池,然后把启动的Executor反向注册给Dirver

    DAGScheduler:负责把Spark作业转换成Stage的DAG(Directed Acyclic Graph有向无环图),根据宽窄依赖切分Stage,然后把Stage封装成TaskSet的形式发送个TaskScheduler; 同时DAGScheduler还会处理由于Shuffle数据丢失导致的失败;

    TaskScheduler:维护所有TaskSet,分发Task给各个节点的Executor(根据数据本地化策略分发Task),监控task的运行状态,负责重试失败的task;

    所有task运行完成后,SparkContext向Master注销,释放资源;

2、Spark On Yarn

Spark On Yarn是由两种运行模式的,一种是Cluster模式,一种是Client模式。这两种模式的区别就是Driver的运行位置。

Cluster模式:Driver运行在Yarn容器的内部,和ApplicationMaster在同一个容器内部。负责申请资源并监控task运行状态和重试失败的task,当用户提交了作业之后就可以关掉Cluster,作业会继续在yarn中运行Client模式:Driver运行在客户端进程中,比如运行在Spark-submit程序的进程中,client不能离开。 client模式

    client向ResouceManager申请启动ApplicationMaster,同时在SparkContext初始化中创建DAGScheduler和TaskScheduler

    ResouceManager收到请求后,在一台NodeManager中启动第一个Container(容器)运行ApplicationMaster

    Dirver中的SparkContext初始化完成后与ApplicationMaster建立通讯,ApplicationMaster向ResourceManager申请Application的资源

    一旦ApplicationMaster申请到资源,便与之对应的NodeManager通讯,启动Executor,并把Executor信息反向注册给Dirver

    Dirver分发task,并监控Executor的运行状态,负责重试失败的task

    运行完成后,Client的SparkContext向ResourceManager申请注销并关闭自己

cluster模式

yarn-cluster模式中,当用户向yarn提交应用程序后,yarn将分为两阶段运行该应用程序:

第一个阶段是把Spark的Dirver作为一个ApplicationMaster在yarn中启动;

第二个阶段是ApplicationMaster向ResourceManager申请资源,并启动Executor来运行task,同时监控task整个运行流程并重试失败的task;

2、Spark On Yarn原理

Spark的Master角色由Yarn的ResourceManager担任。
Worker角色由Yarn的NodeManager担任。
Driver角色运行在Yarn容器内或提交任务的客户端进程中,而真正干红的Executor运行在Yarn提供的容器内。

一句话总结:SparkOnYarn就是让Spark任务运行在Yarn的容器内部,资源管理交给Yarn的ResourceManager和NodeManager代替

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5706096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存