对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 是个啥? 这是基 ...
随机推荐
- GlusterFS学习之路(一)GlusterFS初识
一.GlusterFS简介 GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端 ...
- (转) 理解Angular中的$apply()以及$digest()
原文地址:http://blog.csdn.net/dm_vincent/article/details/38705099 $apply()和$digest()在AngularJS中是两个核心概念,但 ...
- 解决 mybatis 的覆盖问题 以及避免手写大量mapper的方法
只需要先实现覆盖不追加的方法: 然后再把所有需要改动mapper的方法抽离出来即可
- C++操作符优先级带来的错误
在刷LeetCode题目:190. 颠倒二进制位:颠倒给定的 32 位无符号整数的二进制位时,可以利用左移和右移操作符来实现数字翻转: 错误解法: class Solution { public: u ...
- HTTP 两种基本请求方法 GET和 POST的区别
GET方法 1.GET交互方式是从服务器上获取数据,而并非修改数据,所以GET交互方式是安全的.就像数据库查询一样,从数据库查询数据,并不会影响数据库的数据信息,对数据库来说,也就是安全的.2.GET ...
- selenium、unittest——POM框架并出报告
学习隔壁大神的POM框架,结合自己的用例进行修改整理并执行,操作遇到的主要问题是如何分布的写各个模块并统一运行,每个文件夹想要import里面的模块需要有__init__模块 POM主要分为三个部分, ...
- Spring学习(1):侵入式与非侵入式,轻量级与重量级
一. 引言 在阅读spring相关资料,都会提到Spring是非侵入式编程模型,轻量级框架,那么就有必要了解下这些概念. 二. 侵入式与非侵入式 非侵入式:使用一个新的技术不会或者基本不改变原有代码结 ...
- 套接口socket编程(Client/Server编程实例)
基本概念 套接口也就是网络中的ID.网络通信,归根到底还是进程间通信(不同计算机上的进程间的通信).在网络中,每一个节点(计算机或路由器)都有一个网络地址,也就是IP地址. IP地址:在网络中唯一标识 ...
- 袋鼠云研发手记 | 开源·数栈-扩展FlinkSQL实现流与维表的join
作为一家创新驱动的科技公司,袋鼠云每年研发投入达数千万,公司80%员工都是技术人员,袋鼠云产品家族包括企业级一站式数据中台PaaS数栈.交互式数据可视化大屏开发平台Easy[V]等产品也在迅速迭代.在 ...
- UVa 10071
简单运动学公式 v=v0+at x=v0t+1/2*a*t^2=2vt #include<stdio.h> int main() { int v, t; while((scanf(&quo ...