对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 是个啥? 这是基 ...
随机推荐
- centos7.5yum安装mysql(官方yum源比较慢)
mysql的部署 查看Linux发行版本 cat /etc/redhat-release 下载MySQL官方的Yum Repository wget -i http://dev.mysql.com/g ...
- 【BZOJ4543】Hotel加强版
[BZOJ4543]Hotel加强版 题面 bzoj 洛谷 $ps:$在洛谷看题在bzoj交... 题解 我们分析一下这个问题,要怎么样的点才满足三点距离两两相等呢? 1.存在三个点有共同的$LCA$ ...
- QQ在线交谈一句代码搞定
现在有很多网页都有QQ在线咨询,还有什么QQ客服什么的,看着很高大上的一个功能,其实要实现很简单,只需要一句代码就搞定. 还是按以前的套路,先看效果图,再晒源代码 点击图标 再点击 就可以聊天了 再来 ...
- 【Jmeter测试】BeanShell介绍和使用
BeanShell是什么? BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言: BeanShell是用Jav ...
- Django-建立网页
进入cmd模式做 django-admin startproject helloworld创建一个project,并命名helloworld,新生成的文件结构如下 输入python manage. ...
- 【bzm-Random CSV Data Set Config】 -jmeter - 文件中随机取参的方法,(插件自带)
文件中随机取参数的方法 Random CSV Data Set Config
- Oracle集合
--union 并集 select * from emp where ename like '%A%' union select * from emp where ename like '%M%'; ...
- 简析Monte Carlo与TD算法的相关问题
Monte Carlo算法是否能够做到一步更新,即在线学习? 答案显然是不能,如果可以的话,TD算法还有何存在的意义?MC算法必须要等到episode结束后才可以进行值估计的主要原因在于对Return ...
- sql脚本创建用户角色权限表
/******************************************/ /* 名称:权限管理 */ /* 编写日期:2010.5.20 */ /* 开发者:dangqinghua * ...
- 5个最优秀的微信小程序UI组件库
开发微信小程序的过程中,选择一款好用的组件库,可以达到事半功倍的效果.自从微信小程序面世以来,不断有一些开源组件库出来,下面5款就是排名比较靠前,用户使用量与关注度比较高的小程序UI组件库.还没用到它 ...