基本工作流程

  1. Spark的应用分为任务调度和任务执行两个部分
  2. 所以Spark程序都离不开SparkContext和Executor两部分,Executor负责执行任务,运行Executor的机器称为Worker节点,SparkContext由用户程序启动,通过资源调度模块和Executor通信。SparkContext和Executor这两部分在各种运行模式上是公用的。
  3. SparkContext是程序运行的总入口,在SparkContext的初始化过程中,会分别创建DAGScheduler作业调度和TaskScheduler任务调度两个级别的调度模块
  4. 作业调度模块和具体的运行模式无关,它是根据shuffle来划分调度阶段,每个阶段会构建出具体的任务,然后以TaskSets(任务组)的形式提交给任务调度模块来具体执行
  5. 不同运行模式的区别主要体现在任务调度模块,任务调度模块负责启动任务、监控任务和汇报任务的情况。(Standalone模式、Yarn模式等的区别主要体现在任务调度模块这边)

作业调度

作业调度关系图

  • Application(应用程序):Spark应用程序由一个或多个作业组成
  • Job(作业):由一个RDD Action 生成一个或多个调度阶段所组成的一次计算作业
  • Stage(调度阶段):一个任务集多对应的调度阶段。Stage的划分是根据宽依赖(shuffle操作)来划分的
  • TaskSet(任务集):由一组关联的,但互相之间没有shuffle依赖关系的任务所组成的任务集
  • Task(任务):单个分区数据集上的最小处理流程单元

作业调度具体流程

  1. 用户提交程序(Application)创建SparkContext实例,SparkContext根据RDD对象生成DAG图,将作业(Job)提交给DAGScheduler
  2. DAGScheduler将作业(Job)划分成不同的Stage(从末端RDD开始,根据shuffle来划分),每个Stage都是任务的集(TaskSet),以TaskSet为单位提交给TaskScheduler
  3. TaskScheduler管理任务(Task),并通过资源管理器(Cluster Manager)[Standalone模式下是Master,Yarn模式下是ResourceManager]把任务(task)发给集群中的Worker的Executor
  4. Worker接收到任务(Task),启动Executor进程中的线程Task来执行任务(实际任务的运行最终由Executor类来执行,Executor对每一个任务创建一个TaskRunner类,交给线程池运行。)

Spark基本工作流程和作业调度相关推荐

  1. Yarn框架和工作流程简介

    大数据现在越来越火,各种计算框架不断出现,比如内存计算框架(Spark).流式计算框架(Storm).迭代式计算框架(iMapReduce)等新型计算框架的出现,经典MR计算框架(MRv1)的局限性日 ...

  2. GPU—加速数据科学工作流程

    GPU-加速数据科学工作流程 GPU-ACCELERATE YOUR DATA SCIENCE WORKFLOWS 传统上,数据科学工作流程是缓慢而繁琐的,依赖于cpu来加载.过滤和操作数据,训练和部 ...

  3. MapReduce简述、工作流程

    MapReduce简述.工作流程 MR编程模型之执行步骤: 1.准备map处理的输入数据 2.mapper处理 3.Shuffle 4.Reduce处理 5.结果输出 (input)<k1,v1 ...

  4. Yarn框架和工作流程研究

    一.概述     将公司集群升级到Yarn已经有一段时间,自己也对Yarn也研究了一段时间,现在开始记录一下自己在研究Yarn过程中的一些笔记.这篇blog主要主要从大体上说说Yarn的基本架构以及其 ...

  5. Spark SQL 处理流程分析 (一)

    下面的代码演示了通过Case Class进行表Schema定义的例子: // sc is an existing SparkContext. val sqlContext = new org.apac ...

  6. spark任务shell运行_大数据系列:Spark的工作原理及架构

    介绍 本Apache Spark教程将说明Apache Spark的运行时架构以及主要的Spark术语,例如Apache SparkContext,Spark shell,Apache Spark应用 ...

  7. yarn的组成部分_Yarn 的组成及其工作流程

    在 Hadoop1 中 MapReduce 框架即负责集群的资源调度,还负责 MapReduce 程序的运行.由于这种架构资源调度和计算高度耦合,导致了一个 Hadoop 集群中只能跑 MapRedu ...

  8. 什么是MapReduce,MapReduce的工作流程和原理是什么

    一.MapReduce的概念 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约)",和它 ...

  9. MapReduce概述及工作流程

    内容 mapreduce原语(独创) mapreduce工作流程(重点) MR作业提交流程(重点) YARN RM-HA搭建(熟练) 运行自带的wordcount(了解) 动手写wordcount(熟 ...

  10. 分布式管理控制系统Git与项目托管平台Github相关概念、工作流程与操作方法

    尐轩web前端技术博客 -- 丛培森 Payen S.Tsung --There's no place like 127. 0. 0. 1 目录视图 摘要视图 订阅 CSDN学院招募微信小程序讲师啦  ...

最新文章

  1. MySQL中Order By与Limit不要一起用
  2. CentOS安装网卡设置
  3. Python中数字以及算数运算符的相关使用
  4. ftp shell lcd不起作用
  5. 阿里巴巴常考面试题及汇总答案
  6. 最激动人心的视觉系统其实是最枯燥乏味的
  7. “妈,你当年咋看上我爸的?”网友晒爸妈结婚照,笑抽了!
  8. react native text换行_基于React+Koa实现React SSR服务端渲染
  9. 张泉灵:时代抛弃你时,连一声再见都不会说
  10. 学习笔记1:更改python下载源
  11. 尝鲜之在Github上搭建Octopress博客
  12. 演示和解析Flex布局中的各种属性
  13. Python暴力破解附近局域网WiFi密码
  14. Axure原型设计工具--产品经理必备
  15. C语言中的a = b = c ? d : e;
  16. SCI 论文常用词汇 持续更新中。。。
  17. onvif 修改摄像头参数
  18. 程序猿和测试媛——组合在一起的原因
  19. 学会这招,远离年金险99%的坑
  20. 封装PC端使用海康插件播放摄像头直播流(基于VUE)

热门文章

  1. linux u盘格式化失败怎么办,u盘无法完成格式化怎么办
  2. Express 框架的使用(详细)
  3. Express 的基本使用
  4. 360度全景视频后视镜
  5. HSC-1th misc——DORAEMON
  6. 手机与个人计算机区别,手机CPU跟电脑CPU有什么差别?两者差距到底有多大?
  7. Pseudo-terminal will not be allocated because stdin is not a terminal. Warning: Permanently added ‘[
  8. mcrpg职业系统服务器,我的世界MC-梦想大陆RPG服务器1.7.10
  9. cordon,drain
  10. 实验五:暴力破解防范措施和防范误区