对Spark2.2.0文档的学习2-Job Scheduling
Job Scheduling
Link:http://spark.apache.org/docs/2.2.0/job-scheduling.html
概况:
(1)集群中多个应用的调度主要考虑的是不同应用能够使用的集群资源的情况,即CPU以及内存资源,包括静态(Standalone,Mesos、Yarn)和动态(Mesos)的方式,动态资源分配方式需要考虑相应的请求资源的策略和放弃资源的策略。
(2)每个应用内部的调度考虑的是Spark调度器执行“jobs”的方式,默认为FIFO,可以配置成Fair模式。Fair模式下还有pool的概念,pool可以配置三种属性schedulingMode,weight以及minShare。
1、Scheduling Across Applications
一个集群中有多个Spark Application,每个Application独立的启动JVMs运行executors去执行任务以及存储数据。对于多个Application的资源的分配,有两种方案。最简单的是static partitioning每个应用得到它能够得到的最大数量的资源(Standalone mode,Mesos,Yarn都支持,每种需要配置一些参数,指定能够使用的CPU核数以及内存资源)。Mesos支持dynamic sharing of CPU cores。
此外,目前所有的模式都不支持不同应用之间的内存共享。
动态资源分配:
Spark提供基于负载动态调整应用占据的资源的机制。如果一个集群中有多个应用运行,这个机制时很有用的。This feature is disabled by default and available on all coarse-grained cluster managers, i.e. standalone mode, YARN mode, and Mesos coarse-grained mode.
资源分配策略:
Spark移除或者请求executors的启发式规则如下
Request Policy:动态资源分配开启的情况下, when it has pending tasks waiting to be scheduled.还有挂起的任务需要被调度时,即已有的executors不能同时满足所有的task,这时候Spark requests executors in rounds。
Remove Policy:A Spark application removes an executor when it has been idle for more than spark.dynamicAllocation.executorIdleTimeout seconds.空闲超过一定的时间。
2、Scheduling Within an Application
(1)每个Spark应用(SparkContext实例)中,如果jobs由多个线程提交,那么多个并行的jobs可以同时运行。 By “job”, in this section, we mean a Spark action (e.g. save, collect) and any tasks that need to run to evaluate that action.
默认情况下,Spark的调度器以FIFO的方式运行jobs。从Spark0.8开始,也可以配置fair sharing的方式

(2)
Fair Scheduler支持将jobs组织成pools,然后给每个pool设置不同的调度选项。例如为高优先级的jobs创建一个high Priority pool、或者为每个用户的jobs创建一个pool。
pool的默认行为:By default, each pool gets an equal share of the cluster (also equal in share to each job in the default pool), but inside each pool, jobs run in FIFO order.
Pool的属性选项:
(1)schedulingMode: This can be FIFO or FAIR,决定pool中jobs对资源的获取方式
(2)weight: This controls the pool’s share(占有率) of the cluster relative to other pools.控制对集群资源的占有率
(3)minShare: ensure that a pool can always get up to a certain number of resources
对Spark2.2.0文档的学习2-Job Scheduling的更多相关文章
- 对Spark2.2.0文档的学习3-Spark Programming Guide
Spark Programming Guide Link:http://spark.apache.org/docs/2.2.0/rdd-programming-guide.html 每个Spark A ...
- 对Spark2.2.0文档的学习1-Cluster Mode Overview
Cluster Mode Overview Link:http://spark.apache.org/docs/2.2.0/cluster-overview.html Spark应用(Applicat ...
- webpack搭建vue项目开发环境【文档向学习】
为何有这篇文章 各个社区已经有无数篇帖子介绍如何使用webpack搭建前端项目,但无论是出于学习webpack的目的还是为了解决工作实际需要都面临着一个现实问题,那就是版本更新.别人的帖子可能刚写好版 ...
- vue mand-mobile按2.0文档默认安装的是1.6.8版本
vue mand-mobile按2.0文档默认安装的是1.6.8版本 npm list mand-mobilebigbullmobile@1.0.0 E:\webcode\bigbullmobile` ...
- Beautiful Soup 4.2.0 文档
Beautiful Soup 4.2.0 文档 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方 ...
- css2.0文档查阅及字体样式
css2.0文档查阅下载 网址:http://soft.hao123.com/soft/appid/9517.html <html xmlns="http://www.w3.o ...
- Unity shader 官网文档全方位学习(一)
转载:https://my.oschina.net/u/138823/blog/181131 摘要: 这篇文章主要介绍Surface Shaders基础及Examples详尽解析 What?? Sha ...
- C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例
C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...
- 【PyTorch v1.1.0文档研习】60分钟快速上手
阅读文档:使用 PyTorch 进行深度学习:60分钟快速入门. 本教程的目标是: 总体上理解 PyTorch 的张量库和神经网络 训练一个小的神经网络来进行图像分类 PyTorch 是个啥? 这是基 ...
随机推荐
- 20155336虎光元实验四 Android开发基础
20155336虎光元实验四 Android开发基础 实验内容 1:完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号 2:创建 ThirdActivi ...
- PostgreSQL通过mysql_fdw访问MySQL数据库
Mysql与PostgreSQL的安装过程省略. 为简便起见,把MySQL和PostgreSQL都安装在一个机器上,然后在此机器上(准确地说是在PostgreSQL运行的机器上)安装mysql_fdw ...
- 关于快速沃尔什变换(FWT)的一些个人理解
定义 FWT是一种快速完成集合卷积运算的算法. 它可以用于求解类似 $C[i]=\sum\limits_{j⊗k=i}A[j]*B[k]$ 的问题. 其中⊗代表位运算中的|,&,^的其中一种. ...
- GlusterFS学习之路(二)GlusterFS部署及卷类型使用
一.环境说明 主机名 IP地址 角色 磁盘 gluster-node1 192.168.56.11 Server.Client /dev/sdb./dev/sdc./dev/sdd gluster-n ...
- 洛谷P2464 [SDOJ2008]郁闷的小J
洛谷P2464 [SDOJ2008]郁闷的小J 题目描述 小J是国家图书馆的一位图书管理员,他的工作是管理一个巨大的书架.虽然他很能吃苦耐劳,但是由于这个书架十分巨大,所以他的工作效率总是很低,以致他 ...
- 安装centos minimal 版本后安装mysql详细过程(linux)
本文内容参考自:http://www.centoscn.com/mysql/2014/1211/4290.html PS:Yum(全称为 Yellow dog Updater, Modified)是一 ...
- requests,unittest——多接口用例,以及需要先登录再发报的用例
之前写过最简单的接口测试用例,本次利用unittest进行用例管理,并出测试报告,前两个用例是两个不同网页的get用例,第三个是需要登录才能访问的网页A,并在其基础上访问一个需要在A页面点开链接才能访 ...
- webgl 包围盒子
包围盒子是鼠标选择物体的一种实现方式,当从相机出发,经过鼠标点形成的射线和物体的包围盒子相交时,就代表物体被选中
- IO多路复用(一)-- Select、Poll、Epoll
在上一篇博文中提到了五种IO模型,关于这五种IO模型可以参考博文IO模型浅析-阻塞.非阻塞.IO复用.信号驱动.异步IO.同步IO,本篇主要介绍IO多路复用的使用和编程. IO多路复用的概念 多路复用 ...
- 深度学习论文笔记:Deep Residual Networks with Dynamically Weighted Wavelet Coefficients for Fault Diagnosis of Planetary Gearboxes
这篇文章将深度学习算法应用于机械故障诊断,采用了“小波包分解+深度残差网络(ResNet)”的思路,将机械振动信号按照故障类型进行分类. 文章的核心创新点:复杂旋转机械系统的振动信号包含着很多不同频率 ...