spark on yarn启用动态分配
来源:互联网 发布:php session共享 编辑:程序博客网 时间:2024/05/24 06:51
spark on yarn 支持资源的动态分配。
资源请求策略:
一个spark程序使用轮询来请求资源。具体过程如下:
1.如果程序中有任务在等待,超过spark.dynamicAllocation.schedulerBacklogTimeout参数配置的时间(默认是1s),将会得到新的资源,分配executor
2. 如果等待spark.dynamicAllocation.sustainedSchedulerBacklogTimeout参数配置的时间(默认是1s)后,还有任务在等待,第一步的逻辑将会再次被触发。
注意:每次轮询分配的executor的数目是呈指数增长的:
如第一次申请分配1个executor,第二次申请分配2个executor,第n次申请分配2的n-1次方。
资源移除策略:
1.如果spark任务中仍有任务在等待被执行,则这些executor将不会被判定为空闲的。
2.经过spark.dynamicAllocation.executorIdleTimeout参数设定的时间(默认是60s),如果executor仍然没有任务,则会被判定为空闲的。
3.如果executor是空闲的,这个资源就可以被回收。
安全的移除executor:
在不启用动态分配的模式下,executor将会在程序执行完毕之后移除,这个executor的所有状态都将被废弃。但是在动态分配模式下,在程序没有执行完毕,如果一个executor被移除完毕,程序有可能会读取这个executor存储的一些状态,因此spark需要一种机制来安全的移除executors。
这个过程主要是在shuffle过程。在shuffle过程中,executor会将一些输出写到磁盘,然后作为server让其他executors可以获取shuffle的结果文件。为了保护这个过程,spark从1.2开始,提过了一个额外的shuffle服务:org.apache.spark.yarn.network.YarnShuffleService。
如果这个服务启动,executor将会通过这个服务来获取shuffle文件,而不受executor的影响。
在spark on yarn 配置完毕的基础上
一.配置spark-default.conf
spark.dynamicAllocation.enabled true
spark.shuffle.service.enabled true
这两个参数如果想要生效的话就不能设置spark.executor.instances参数
spark.dynamicAllocation.minExecutors 1
最小分配的executor数量
spark.dynamicAllocation.maxExecutors infinity
最大分配的executor数量
二 .配置yarn-site.xml,添加spark动态分配和收回executor的服务
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle,spark_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
<value>org.apache.spark.network.yarn.YarnShuffleService</value>
</property>
三.将spark的lib目录里的spark-1.5.2-yarn-shuffle.jar分发到hadoop集群的每一个安装目录里(可以放置在/usr/local/hadoop/share/hadoop/common/)。
四.重新启动集群的nodemanger服务。
- spark on yarn启用动态分配
- Spark on Yarn部署
- Spark on Yarn
- spark on yarn
- spark on yarn
- Spark on Yarn简介
- spark on yarn
- Spark on YARN 部署
- spark on yarn 配置
- spark on yarn
- spark on yarn 安装
- Spark on Yarn 图
- Spark on yarn
- 源码-Spark on Yarn
- Launching Spark on YARN
- Spark On Yarn 知识点
- Spark 2.0 On Yarn
- spark on yarn
- angular debounce throttle
- 分布式Process之三: Time and Ordering
- 基于多尺度对比度x射线图像增强算法
- SPIKE&FUZZING 模糊测试(收藏)
- CentOS7.1安装Oracle 12.1客户端以及cx_Oracle
- spark on yarn启用动态分配
- 数据结构之二叉搜索树
- IOS 基础框架名称
- C++学习笔记(初级篇)——Lambda表达式
- Wifi控件的使用
- mysql--windows忘记密码
- EL表达式无法被解析
- Android开发:shape和selector和layer-list的(详细说明)
- 参数编码规范