Application

用户构建在 Spark 上的程序。由集群上的一个 driver 程序和多个 executor 组成。

Worker node

任何在集群中可以运行应用代码的节点。

Executor

一个为了在 worker 节点上的应用而启动的进程,它运行 task 并且将数据保持在内存中或者硬盘存储。每个应用有它自己的 Executor。

Job:一个由多个任务组成的并行计算,当需要执行一个rdd的action的时候,会生成一个job

Stage:每个Job被拆分成更小的被称作stage(阶段)的task(任务)组,stage彼此之间是相互依赖的,各个stage会按照执行顺序依次执行.

Task: 一个将要被发送到Executor中的工作单元,是stage的一个任务执行单元,一般来说,一个rdd有多少个partition,就会有多少个task,因为每一个task知识处理一个partition上的数据

比如:一个Mapreduce程序就是一个Job,而一个Job里面可以有一个或多个Task,

Task又可以区分为MapTask和ReduceTask.一个Application和一个SparkContext相关联,

每个Application中可以有一个或多个Job,可以并行或者串行运行Job。Spark中的一个Action可以触发一个Job的运行。

在Job里面又包含了多个Stage,Stage是以Shuffle进行划分的。在Stage中又包含了多个Task,多个Task构成了Task Set。

Mapreduce中的每个Task分别在自己的进程中运行,当该Task运行完的时候,该进程也就结束了。和Mapreduce不一样的是,Spark中多个Task可以运行在一个进程里面,而且这个进程的生命周期和Application一样,即使没有Job在运行。

Stage的划分过程

Spark Application只有遇到action操作的时候才会真正的提交任务并行计算,DAGScheduler 会根据各个RDD之间的依赖关系形成一个DAG,并根据ShuffleDependency 来进行stage的划分,stage包含多个tasks,个数由该stage的finalRDD决定,stage里面的task完全相同,DAGScheduler 完成stage的划分后基于每个Stage生成TaskSet,并提交给TaskScheduler,TaskScheduler负责具体的task的调度,在Worker节点上启动 task。

stage的划分过程:从最后一个RDD开始,调用递归,从后往前推,找该RDD和父RDD之间的依赖关系,如果是窄依赖,会继续找父RDD的父RDD,如果是宽依赖,就会从该RDD开始到前面所有的RDD划分为一个stage,递归的出口是直到找不到父RDD,最后把所有的RDD划分为一个stage

stage,task和job的区别与划分方式相关推荐

  1. spark job stage task概念与区分

    基本概念 Job简单讲就是提交给spark的任务. Stage是每一个job处理过程要分为的几个阶段. Task是每一个job处理过程要分几为几次任务. Task是任务运行的最小单位.最终是要以tas ...

  2. 什么是A.B.C类网络 怎么区别和划分

     什么是A.B.C类网络 怎么区别和划分 违规检举侵权投诉| | 2006-05-20 13:39 fuliang907 | 浏览 15948 次 网络 网络地址的最高位必须是"10 指 ...

  3. 计算机领域中Task和Job的区别

    There are only two hard things in Computer Science: cache invalidation and naming things (计算科学中只有两件事 ...

  4. robotac属于a类还是b类_2018考研国家线:a类b类线的区别及划分

    考研国家线是教育部统一划定,分为单科线和总分线,而单科线.总分线又分为A.B两类,很多同学搞不清楚,这两个是何意义,怎么划分的?下面新东方在线就来谈谈考研国家线a类b类区别及划分. 考研国家线划分为A ...

  5. c语言中%s的作用,C语言中%c与%s的区别与划分详解

    %c格式对应的是单个字符,%s格式对应的是字符串. 例: char a; char b[20]; scanf("%c",&a); //只能输入一个字符. scanf(&qu ...

  6. MBR与GPT(GUID)的区别及使用方式(偏实际操作)

    MBR与GPT(GUID)的区别及使用方式(偏实际操作) 目录 MBR与GPT(GUID)的区别及使用方式(偏实际操作) 前言 区别 问题描述 1.在Windows安装程序新建分区的过程中 2.在磁盘 ...

  7. 论vue3.0和vue2.0区别之编程方式及例子详解

    系列文章目录 第一章 论vue3.0和vue2.0区别之编程方式及例子详解 第二章 同一台电脑 实现 vue-cli2和vue-cli3同时并存 及 常见命令 第三章 vue3.0项目实战 - Ele ...

  8. mysql select count() count(1)_select count()和select count(1)的区别和执行方式讲解

    select count()和select count(1)的区别和执行方式讲解 发布时间:2020-09-06 13:26:14 来源:脚本之家 阅读:227 作者:CODETC 在SQL Serv ...

  9. 全角和半角的区别及使用方式

    转载全角和半角的区别及使用方式 一.什么是全角什么是半角? 一.什么是全角和半角? 1. 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置.全角占两个字节. 汉字字符和规 ...

最新文章

  1. semantic-ui-react图像组件不显示图像的问题
  2. ubuntu MNN编译安装
  3. golang中的json
  4. ios微信小程序下拉刷新怎么配_为什么他的下拉刷新是个动画效果?
  5. 计算机任务驱动法教学应用,任务驱动教学法在计算机教学中的应用
  6. Paoding-Rose学习
  7. 成为oa的飞鸽传书重要标准应用与开发平台
  8. Illustrator CS3自学实例高清视频教程
  9. python pandas excel处理_python使用pandas处理excel的方法
  10. 电脑屏幕亮度变暗、动态对比度问题,解决方法汇总
  11. Python爬虫英语四六级网站查询准考证号
  12. win11邮箱客户端配置邮箱
  13. 试验设计系列(一)| 样本量与功效(power)的计算
  14. vs2015开发在网页中调用的ocx控件详解(二)
  15. 怎么制作书单视频?免费制作书单视频软件分享
  16. 畅想未来的计算机网络科技有限公司,畅想未来科技生活作文
  17. iir滤波器的基本网络结构_DSP第五章数字滤波器基本结构
  18. Linux shell脚本
  19. 什么是公网?什么是专网?
  20. 特斯拉电动车电池组电路结构

热门文章

  1. 编写一个打印全年日历的程序
  2. android Bluetooth 开发(二):打开、关闭、搜索、允许搜索、查看
  3. C# 插入Excel页眉、页脚
  4. uboot下启动logo
  5. Java中如何大小写字母进行转换(ASCII编码)
  6. 加入飞鸽传书,提高交际能力!
  7. angular实现百度地图实现电子围栏
  8. xp系统打开计算机硬盘分区,xp硬盘怎么分区?xp系统对硬盘进行分区的方法
  9. 易软门诊管理系统 v4.7 下载
  10. dbi:mysql_MYSQL 使用DBI