Spark中的延迟调度

Spark的Task的调度过程有五个本地性级别:PROCESS_NODE、NODE_LOCAL、NO_PREF、RACK_LOCAL、ANY。在理想的状态下,我们肯定是想所有的Task的调度都是PROCESS_NODE级别的,这样的话所有的Task都是在数据所在的机器上进行计算,这样的计算效率是最好的。但是实际的情况并不是这样的,因为Spark在Task的调度过程会发生如下两种情况:
1、数据所在的机器上的Executor没有空闲的cpu资源
2、含有空闲cpu资源的Executor所在的机器上并没有数据
出现以上两种情况的时候,我们可能就需要舍弃掉最好的数据本地性了,这就是延迟调度需要做的事情,对于第一种情况,延迟调度让Task等一定的时间(默认是配置spark.locality.wait=3s),以期望数据所在机器上的Executor上的cpu释放,然后再调度到这个Executor上,那如果这个Executor的cpu一直没有释放(即Task等的时间超过一定的时间了)呢,这个时候Spark就直接将这个Task调度到含有空闲cpu资源但是没有数据的Executor,这个时候虽然Task的本地性级别不高,但是可能比你等待含有数据的Executor释放空闲cpu来的更高效

Spark中的动态资源管理

根据集群计算需要的资源动态的决定Executor的个数,在一个Spark应用执行过程中,如果一个Executor没有任何的Task执行,这种空闲状态如果保持了一定的时间(默认是60s)后,那么这个Executor将会从集群中被删除掉。当Driver端有Task pending等待了一定时间(默认是1秒)后还没被调度执行的话,则会申请增加Executor,这样动态的决定需要Executor可以使得整个集群资源使用效率更高,更多的会用在spark-shell以及Spark SQL的ThriftServer中

spark延迟调度与动态资源管理的更多相关文章

  1. Spark Job调度

    Spark Job调度 1.概览 Spark有几种用于在计算之间调度资源的工具.首先,回想一下,如集群模式概述中所述,每个Spark应用程序(SparkContext的实例)都运行一组独立的execu ...

  2. Spark的调度

    作业调度简介 设计者将资源进行不同粒度的抽象建模,然后将资源统一放入调度器,通过一定的算法进行调度,最终要达到高吞吐或者低访问延时的目的. Spark在各种运行模式中各个角色实现的功能基本一致,只不过 ...

  3. 通过源码理解Spring中@Scheduled的实现原理并且实现调度任务动态装载

    前提 最近的新项目和数据同步相关,有定时调度的需求.之前一直有使用过Quartz.XXL-Job.Easy Scheduler等调度框架,后来越发觉得这些框架太重量级了,于是想到了Spring内置的S ...

  4. Spark Streaming揭秘 Day21 动态Batch size实现初探(下)

    Spark Streaming揭秘 Day21 动态Batch size实现初探(下) 接昨天的描述,今天继续解析动态Batch size调整的实现. 算法 动态调整采用了Fix-point迭代算法, ...

  5. Spark Streaming揭秘 Day20 动态Batch size实现初探(上)

    Spark Streaming揭秘 Day20 动态Batch size实现初探(上) 今天开始,主要是通过对动态Batch size调整的论文的解析,来进一步了解SparkStreaming的处理机 ...

  6. spark application调度机制(spreadOutApps,oneExecutorPerWorker 算法)

    1.要想明白spark application调度机制,需要回答一下几个问题: 1.谁来调度? 2.为谁调度? 3.调度什么? 3.何时调度? 4.调度算法 前四个问题可以用如下一句话里来回答:每当集 ...

  7. spark任务调度模式,动态资源分配

    官网链接: http://spark.apache.org/docs/latest/job-scheduling.html 主要介绍: 1 application级调度方式 2 单个applicati ...

  8. Spark Streaming揭秘 Day17 资源动态分配

    Spark Streaming揭秘 Day17 资源动态分配 今天,让我们研究一下一个在Spark中非常重要的特性:资源动态分配. 为什么要动态分配?于Spark不断运行,对资源也有不小的消耗,在默认 ...

  9. 资源管理与调度系统-YARN的基本架构与原理

    资源管理与调度系统-YARN的基本架构与原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 为了能够对集群中的资源进行统一管理和调度,Hadoop2.0引入了数据操作系统YARN. ...

随机推荐

  1. hread.interrupt()到底意味着什么

    首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止. 所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了.而 Threa ...

  2. centos7下vs code编辑器字体与windows版本同步设置-安装中文字体,美化vscode

    "editor.fontFamily": "Consolas, 'Courier New', monospace" 从window10系统中复制出以上字体,到C ...

  3. python3 根据时间获取本月一号和月末日期

    一.概述 有一个统计报表需求,需要知道上个月的第一天和最后一天,来进行上个月的数据统计. 二.代码实现 #!/usr/bin/env python3 # coding: utf-8 import ca ...

  4. Kafka学习笔记之Kafka日志删出策略

    0x00 概述 kafka将topic分成不同的partitions,每个partition的日志分成不同的segments,最后以segment为单位将陈旧的日志从文件系统删除. 假设kafka的在 ...

  5. 思维导图xmind的文档保存问题

    如果文件名相同,可能最新的文档覆盖以前的.当前活动文档只能有一个,如果有多个,保存后,其他活动文档也被更新了. 新建一个空白doc文档,仅仅是文件名,作为附件导入到xmind中,在xmind中保存后, ...

  6. sql server union与unionALL区别

    两种用法 一样, 查询字段类型需要一致 union 会自动去重 union all  不会去重 select name ,age from student union select name ,age ...

  7. 几何不变矩--Hu矩

    [图像算法]图像特征: ---------------------------------------------------------------------------------------- ...

  8. Jenkins+Gitee异常解决

    Failed to connect to repository : Command "git ls-remote -h username@mygit.com:cc/myproject.git ...

  9. Django:RestFramework之-------认证

    3 restframework-认证 3.1APIView 认证: 认证是否已经登陆,如果已经登陆返回元组,如果没有登陆报错 源码流程: 执行dispatch方法: def dispatch(self ...

  10. vue打包后页面显示空白但是不报错

    在使用vue打包的时候页面显示空白,并且控制台不报错 设置vue-router的时候mode设置为history模式了,这种模式要有后台的配合,一般还是使用哈希模式就不会出现页面空白了.