spark动态资源分配

本文介绍了Spark的动态资源分配特性,旨在解决executor在任务差异大时的资源浪费问题。详细阐述了如何配置DRA,包括将shuffle包放入classpath、修改`yarn-site.xml`和重启Nodemanager。此外,还提到了启用DRA的相关作业配置参数,如`spark.dynamicAllocation.enabled`等。需要注意的是,Spark Streaming由于其处理特性,不适合使用动态资源分配。
摘要由CSDN通过智能技术生成

1.简介

前段时间仓库间推广spark-sql时,生产环境已经应用了spark dynamic resource allocation特性,即可动态的资源分配,这里的动态和资源分配是指executor级的,我们知道spark的资源分配是比较coarse-grained的,一个spark作业不同stage之间task数量有时差异比较大,特别是最后stage的时候,有些作业数据稍微倾斜一下,那就有大量的executor是在空闲状态,造成集群资源的极大浪费,通过动态资源分配,已经空闲的executor,如果超过了timeout时间,即可回收资源,而不是继续占用资源;

2.DRA配置安装

可参照官网http://spark.apache.org/docs/1.6.3/job-scheduling.html#dynamic-resource-allocation

1.首先找到spark版本的spark-<version>-yarn-shuffle.jar shuffle包,并将该包放到集群所有NodeManager的classpath下,比如放到HADOOP_HOME/share/hadoop/yarn/lib

2.在所有节点的yarn-site.xml中NodeManager上运行的附属服务中加入spark_shuffle及对应的class类,如下:

        <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>

3.重启所有的Nodemanager

即可配置安装好spark的动态资源的分配;

3.spark作业配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值