Spark中的任务调度总结

作者: 陈_志鹏 | 来源:发表于2017-12-26 14:33 被阅读33次

Spark中的任务调度总结

1.集群启动

在work节点启动后会向master节点注册资源情况,有多少的core和内存都会上报master统一进行管理。master节点会知道所有work节点的资源情况。


master统一管理资源

2.job执行

写好的应用程序提交到客户端

命令 说明
Spark-submit —master spark:{ip}:7077 —class {jarPath} 提交jar包

在客户端执行jar包之后会先启动Driver进程,jar包运行到new SparkContext()的时候会创建两个重要的对象,分别是DAGScheduler和TaskScheduler。

  • 以下是SparkContext对象中的源码:
创建TaskScheduler,和DAGScheduler
TaskScheduler对象的创建

TaskScheduler对象创建完毕后,会向Spark工作集群申请资源,准备为当前的应用程序进行资源的调度,最终结果把所有的Executro的进程地址反向注册给TaskScheduler。

  • TaskScheduler对象构建的流程:


    构建TaskScheduler对象
DAGScheduler对象的创建

当遇到Action算子的时候会触发job的执行,DAGScheduler根据RDD的宽窄依赖划分Stage,切割完毕后会把Stage中所有的Task放到TaskSet对象中发送给TaskScheduler。

  • DAGScheduler对象构建的流程:
创建DAGScheduler对象
执行任务

从上面的两个对象中已经得到了2个信息

  • 通过Execute的反向注册,TaskScheduler已知所有的Execute的地址。
  • 通过Stage的TaskSet已得到所有的Task

接下来就是分发Task到Execute进程中,在TaskScheduler对象中会遍历TaskSet集合把Task分发到各个Execute进程中去执行job。

  • 分发task到Execute中执行job:
分发task执行任务

相关文章

  • Spark中的任务调度总结

    Spark中的任务调度总结 1.集群启动 在work节点启动后会向master节点注册资源情况,有多少的core和...

  • spark任务调度详解

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

  • Spark延迟任务调度-实例分析

    最近在看Spark任务调度,尤其是延迟调度这块,翻了好多资料与博客都是发现延迟调度中是这样介绍的:“在为任务分配节...

  • 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的基本功能,包含任务调度、内存...

  • Spark 任务调度之 Register App

    接着Spark 任务调度之Launch Driver,继续介绍Driver启动过程中,当SparkContext初...

  • Azkaban调度Spark任务

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

  • Spark 内核机制(重要)

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

网友评论

    本文标题:Spark中的任务调度总结

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