Spark中资源调度和任务调度
Spark比MR快的原因
1、Spark基于内存的计算
2、粗粒度资源调度
3、DAG有向无环图:可以根据宽窄依赖划分出可以并行计算的task
细粒度资源调度
MR是属于细粒度资源调度
优点:每个task运行的时候单独申请资源,资源被充分利用
缺点:task启动速度慢
粗粒度资源调度
Spark是属于粗粒度资源调度
优点:一次性将所有需要的资源都申请下来,task后续启动就不需要额外申请资源,启动速度非常快
缺点:会造成资源的浪费,因为只有当最后一个task运行完以后资源才会被释放
资源申请
1、使用spark-sumbit提交任务
2、在提交任务的节点启动Driver程序:Drive主要负责任务调度
3、Driver程序会向RM申请资源启动AM
4、RM会随机分配一台NM启动AM
5、AM又会向RM申请资源启动一批Executor
6、RM会分配资源在NM中启动Executor
7、Executor启动后会反向注册给Drive端
资源调度
1、当遇到一个action算子的时候,开始触发一个job进行任务调度
2、根据代码,构建DAG有向无环图
3、DAGScheduler会根据宽窄依赖切分Stage:Stage:是一组可以并行计算的Task
4、会将每个Stage以TaskSet的形式发送个TaskScheduler
5、TaskScheduler会将Task依次发送到Executor中执行
Task的重试机制
1、Task如果失败了,会由TaskScheduler重试3次
2、如果还是失败了,会由DAGScheduler将Stage重试4次
3、如果出现Shuffle file not found,DAGScheduler会去将上游的Stage进行重试
推测执行
当某个task执行太慢的时候,TaskSchedule会发送一个一模一样的task去执行,最终结果谁先执行完就以谁为准
Spark中资源调度和任务调度的更多相关文章
- Spark Core_资源调度与任务调度详述
转载请标明出处http://www.cnblogs.com/haozhengfei/p/0593214ae0a5395d1411395169eaabfa.html Spark Core_资源调度与任务 ...
- Spark Core 资源调度与任务调度(standalone client 流程描述)
Spark Core 资源调度与任务调度(standalone client 流程描述) Spark集群启动: 集群启动后,Worker会向Master汇报资源情况(实际上将Worker的资 ...
- spark中资源调度任务调度
在spark的资源调度中 1.集群启动worker向master汇报资源情况 2.Client向集群提交app,向master注册一个driver(需要多少core.memery),启动一个drive ...
- spark 图文详解:资源调度和任务调度
讲说spark的资源调度和任务调度,基本的spark术语,这里不再多说,懂的人都懂了... 按照数字顺序阅读,逐渐深入理解:以下所有截图均为个人上传,不知道为什么总是显示别人的QQ,好尴尬,无所谓啦, ...
- 【Spark篇】---Spark资源调度和任务调度
一.前述 Spark的资源调度是个很重要的模块,只要搞懂原理,才能具体明白Spark是怎么执行的,所以尤其重要. 自愿申请的话,本文分粗粒度和细粒度模式分别介绍. 二.具体 Spark资源调度流程图: ...
- Spark资源调度和任务调度
一.资源调度&任务调度 1.启动集群后,Worker节点会周期性的[心跳]向Master节点汇报资源情况,Master掌握集群资源情况. 2.当Spark提交一个Application后,根据 ...
- 【Spark-core学习之六】 Spark资源调度和任务调度
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- Spark 资源调度 与 任务调度
Spark 资源调度与任务调度的流程(Standalone): 启动集群后, Worker 节点会向 Master 节点汇报资源情况, Master掌握了集群资源状况. 当 Spark 提交一个 Ap ...
- Spark中的编程模型
1. Spark中的基本概念 Application:基于Spark的用户程序,包含了一个driver program和集群中多个executor. Driver Program:运行Applicat ...
随机推荐
- python二级 第9套
1. prInt.默认输出空格 2. 我的这种想法也行不通啊 format() 一次只能有一个未知量 2. 分割的结果就是列表 3. 对比"大学" 上一套的split('&q ...
- python3.7+flask+alipay 支付宝付款功能
文档参考github:https://github.com/fzlee/alipay/blob/master/docs/init.md 沙箱环境配置:https://opendocs.alipay.c ...
- JS获取contextPath的方法
function getContextPath() { var pathName = document.location.pathname; var index = pathName.subst ...
- Java集合——List,Set,Map总结笔记
1. 集合 Collection 1.1 Java 集合框架 Java 集合框架位于 java.util 包中.Java 集合框架主要包括两种类型的容器,一种是集合(C ...
- 题解 CF914G Sum the Fibonacci
题目传送门 题目大意 给出\(n,s_{1,2,...,n}\),定义一个五元组\((a,b,c,d,e)\)合法当且仅当: \[1\le a,b,c,d,e\le n \] \[(s_a\vee s ...
- Go语言核心36讲(Go语言进阶技术一)--学习笔记
07 | 数组和切片 我们这次主要讨论 Go 语言的数组(array)类型和切片(slice)类型. 它们的共同点是都属于集合类的类型,并且,它们的值也都可以用来存储某一种类型的值(或者说元素). 不 ...
- MyBatis的框架设计
1.MyBatis的框架设计 2.整体设计 2.1 总体流程 (1)加载配置并初始化 触发条件:加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信 ...
- Excel一对多查找
很多人在Excel中用函数公式做查询的时候,都必然会遇到的一个大问题,那就是一对多的查找/查询公式应该怎么写?大多数人都是从VLOOKUP.INDEX+MATCH中入门的,纵然你把全部的多条件查找方法 ...
- Flink Yarn的2种任务提交方式
Flink Yarn的2种任务提交方式 Pre-Job模式介绍 每次使用flink run运行任务的时候,Yarn都会重新申请Flink集群资源(JobManager和TaskManager),任务执 ...
- 【UE4】读写 Texture 数据
创建texture 方式一 void AActor_Assignment2::TextureFromImage_Internal( const TArray<FColor>& Sr ...