美文网首页Spark知识点
Spark任务调度流程

Spark任务调度流程

作者: 0_9f3a | 来源:发表于2017-12-02 19:22 被阅读0次
image.png

1.启动Spark集群

2.执行jar包

3.启动了Driver进程(通过执行代码启动了Driver) 然后生成了两个对象DSGSchedule TASKSchedule

4.当TaskSchedule创建完成之后向master发送一个请求:为当前的Application申请资源。申请多少资源是有默认值的,或者配置值如下

image.png

5.Master接受了资源请求后,根据自己所管理的资源情况,会通知资源充足的Worker节点上启动Executor进程

6.Master向worker发送消息:在你的节点上启动Executor 启动什么样子的Executor也在这个消息里告诉(此时所有的Executor全部启动起来)

7.每一个Executor进程启动完毕后都会反向注册给TASKSchedule(当第7步完事儿后 TaskSchedule就有一批Executor地址)

(3.4.5.6.7是第二行代码触发的)

8.(然后第三行代码)当遇到count算子时候会触发job的执行,DAGSchedule根据RDD宽窄依赖切割job,划分stage,stage内部的rdd一定是窄以来,stage与stage之间是宽依赖,切割完毕后DAGSchedule会将这个stage中所有的task封装到taskSet对象中然后发送给TaskSchedule。(发送指的是DAGSchedule调用了TaskSchedule的一个submittask方法)

9.taskSchedule接受到每一个TaskSet对象后,都会遍历这个TaskSet集合,将集合中每一个task发送到Executor中执行。

补充 TaskSchedule 在发送每一个task之前,首先要看一下要计算数据的位置。

Spark可以复用资源(Executor)这是由于Spark粗粒度资源调度导致

而MR这种细粒度资源调度计算框架,只要上一个Action算子执行完毕后启动的Executor会被kill掉。

注意:如果想让你的Application分布式计算,那么你的代码中就不要设置conf,setMsater为local,干脆不用设置

并且在提交Application的时候要指定--master这个选项以及选项参数(spark://hadoop1:7077

相关文章

  • Spark任务调度流程

    1.启动Spark集群 2.执行jar包 3.启动了Driver进程(通过执行代码启动了Driver) 然后生成了...

  • Spark 基础(下篇)

    上篇介绍了spark的突出特点以及基本框架,下面给大家介绍下spark的基本数据结构、spark任务调度的详细流程...

  • Spark 内核机制(重要)

    Spark 内核机制 就是Driver中 Job怎样调度task任务的过程 提交流程: submit_client...

  • spark任务调度详解

    一、spark scheduler(spark任务调度) 在使用spark-summit或者spark-shell...

  • Spark任务调度

    名词解释 Cluster Manager:在Standalone 模式中即为Master(主节点),控制整个集群,...

  • Spark任务提交过程

    1. 前言 本文主要讲述一下我对spark任务调度过程的理解,必要的地方会配合源码。 2 . Spark任务调度 ...

  • Spark 内核概述

    Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制、Spark任务调度机制、Spark内...

  • 1.Spark入门之Spark概述

    1.什么是Spark 2.Spark内置模块 Spark Core:实现了Spark的基本功能,包含任务调度、内存...

  • Azkaban调度Spark任务

    调度Spark任务Demo 创建一个新的project 编写代码写一段简单的Spark代码,将程序打包 编写调度命...

  • 三、Azkaban功能总体介绍

    一、概述 Azkaban是一套任务调度系统,可以调度command、hadoopMR、hive、spark、pig...

网友评论

    本文标题:Spark任务调度流程

    本文链接:https://www.haomeiwen.com/subject/rsxobxtx.html