参考:

http://blog.csdn.net/dandykang/article/details/48160953

    对于Spark应用来说,资源是影响Spark应用执行效率的一个重要因素。当一个长期运行 的服务(比如Thrift Server),若分配给它多个Executor,可是却没有任何任务分配给它,而此时有其他的应用却资源张,这就造成了很大的资源浪费和资源不合理的调度。 
    动态资源调度就是为了解决这种场景,根据当前应用任务的负载情况,实时的增减 Executor个数,从而实现动态分配资源,使整个Spark系统更加健康。
 
配置步骤:
 
    1. 需要先配置External shuffle service。参见spark on yarn(External shuffle service)配置
    2. 在“spark-defaults.conf”中必须添加配置项“spark.dynamicAllocation.enabled”,并将该参数的值设置为“true”,表示开启动态资源调度功能。默认情况下关闭此功能。
    3. 根据情况配置一些可选参数
 
以下是基本配置参考
spark.shuffle.service.enabled                true   配置External shuffle Service服务(一定要配置启用)
spark.shuffle.service.port                       7337
spark.dynamicAllocation.enabled         true   启用动态资源调度
spark.dynamicAllocation.minExecutors    3    每个应用中最少executor的个数
spark.dynamicAllocation.maxExecutors    8    每个应用中最多executor的个数
 
 

可选参数说明:

 
配置项                                                                                    说明                                                                默认值
spark.dynamicAllocation.minExecutors                             最小Executor个数。                                        0 
spark.dynamicAllocation.initialExecutors                          初始Executor个数。                                        spark.dynamicAllocation.minExecutors
spark.dynamicAllocation.maxExecutors                             最大executor个数。                                        Integer.MAX_VALUE
spark.dynamicAllocation.schedulerBacklogTimeout         调度第一次超时时间。                                 1(s)
spark.dynamicAllocation.sustainedSchedulerBacklogTimeout 调度第二次及之后超时时间。      spark.dynamicAllocation.schedulerBacklogTimeout
spark.dynamicAllocation.executorIdleTimeout                  普通Executor空闲超时时间。                          60(s)
spark.dynamicAllocation.cachedExecutorIdleTimeout      含有cached blocks的Executor空闲超时时间。spark.dynamicAllocation.executorIdleTimeout的2倍
 
说明
1. 使用动态资源调度功能,必须配置External Shuffle Service。如果没有使用External Shuffle Service,Executor被杀时会丢失shuffle文件。 
2. 配置了动态资源调度功能,就不能再单独配置Executor的个数,否则会报错退出。
3. 使用动态资源调度功能,能保证最少的executor的个数(spark.dynamicAllocation.minExecutors)

spark系统实现yarn资源的自动调度的更多相关文章

  1. 资源管理与调度系统-YARN资源隔离及以YARN为核心的生态系统

    资源管理与调度系统-YARN资源隔离及以YARN为核心的生态系统 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是资源隔离 资源隔离是指为不同任务提供可独立使用的计算资源以 ...

  2. [Spark内核] 第35课:打通 Spark 系统运行内幕机制循环流程

    本课主题 打通 Spark 系统运行内幕机制循环流程 引言 通过 DAGScheduelr 面向整个 Job,然后划分成不同的 Stage,Stage 是從后往前划分的,执行的时候是從前往后执行的,每 ...

  3. 打通 Spark 系统运行内幕机制循环流程

    本课主题 打通 Spark 系统运行内幕机制循环流程 引言 通过 DAGScheduelr 面向整个 Job,然后划分成不同的 Stage,Stage 是从后往前划分的,执行的时候是從前往后执行的,每 ...

  4. YARN资源调度策略之Capacity Scheduler

    背景 yarn默认使用的是最简单的FIFO调度器,即一个default队列,所有用户共享,分配资源也是先到先得,没有优先级之分.有时一两个任务就把资源全占了,其他任务吃不到资源造成饥饿,显然这样的资源 ...

  5. (转)Spark性能优化:资源调优篇

      在开发完Spark作业之后,就该为作业配置合适的资源了.Spark的资源参数,基本都可以在spark-submit命令中作为参数设置.很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何 ...

  6. 【转载】 Spark性能优化:资源调优篇

    在开发完Spark作业之后,就该为作业配置合适的资源了.Spark的资源参数,基本都可以在spark-submit命令中作为参数设置.很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置 ...

  7. Spark性能优化:资源调优篇(转)

    在开发完Spark作业之后,就该为作业配置合适的资源了.Spark的资源参数,基本都可以在spark-submit命令中作为参数设置.很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置 ...

  8. Spark性能优化:资源调优篇

    在开发完Spark作业之后,就该为作业配置合适的资源了.Spark的资源参数,基本都可以在spark-submit命令中作为参数设置.很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置 ...

  9. Spark源码分析之六:Task调度(二)

    话说在<Spark源码分析之五:Task调度(一)>一文中,我们对Task调度分析到了DriverEndpoint的makeOffers()方法.这个方法针对接收到的ReviveOffer ...

随机推荐

  1. less13 颜色值函数

    //通过十进制红色,绿色,蓝色三种值 (RGB) 创建不透明的颜色对象. div{ background: rgb(255,0,0); background: rgb(100%,0%,0%); } / ...

  2. bzoj1497: [NOI2006]最大获利(最大权闭合子图)

    1497: [NOI2006]最大获利 题目:传送门 题解: %%%关于最大权闭合子图很好的入门题 简单说一下什么叫最大权闭合子图吧...最简单的解释就是正权边连源点,负权边连汇点(注意把边权改为正数 ...

  3. 智课雅思短语---四、Exploit to the full one’s favorableconditions and avoid unfavorable ones

    智课雅思短语---四.Exploit to the full one’s favorableconditions and avoid unfavorable ones 一.总结 一句话总结:扬长避短 ...

  4. python判断一个单词是否为有效的英文单词?——三种方法

    For (much) more power and flexibility, use a dedicated spellchecking library like PyEnchant. There's ...

  5. Oozie框架基础

    * Oozie框架基础 官方文档地址:http://oozie.apache.org/docs/4.0.0/DG_QuickStart.html 除Oozie之外,类似的框架还有: ** Zeus:h ...

  6. Oracle中根据表明获取对应表触发器名称

    Select object_name From user_objects a left join all_triggers b on a.object_Name = b.trigger_name wh ...

  7. mac本 maven项目还没发布成功,tomcat就报没有监听ContextLoaderListener 的解决方法

    Maven项目下update maven后Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderL     严重: Error config ...

  8. JS几种遍历方式比较

    几种遍历方式比较 for of 循环不仅支持数组.大多数伪数组对象,也支持字符串遍历,此外还支持 Map 和 Set 对象遍历. for in 循环可以遍历字符串.对象.数组,不能遍历 Set/Map ...

  9. 题解 P1179 【数字统计】

    嚯嚯嚯,这道题很显然是削弱版的51nod P1042. 那么显然我们需要使用数位DP解题. 思路大致是这样的: 对于每一个数字,考虑三种影响关系: 1. 它对低位的影响 2. 它对高位的影响 3. 高 ...

  10. 【Codeforces Round #462 (Div. 1) B】A Determined Cleanup

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 设\(设f(x)=a_d*x^{d}+a_{d-1}*x^{d-1}+...+a_1*x+a_0\) 用它去除x+k 用多项式除法除 ...