Spark on YARN实现动态资源分配配置记录

使能Spark资源动态分配

进入${SPARK_HOME}/conf/目录,在spark-defaults.conf文件中新增如下配置
如果spark-defaults.conf文件不存在,从spark-defaults.conf.template模板文件拷贝

cp spark-defaults.conf.template spark-defaults.conf
vi spark-defaults.conf
# Configuring the Dynamic Resource Allocation
spark.dynamicAllocation.enabled	true

使能External Shuffle Service

在spark-defaults.conf文件中新增如下配置

# Configuring the External Shuffle Service
spark.shuffle.service.enabled	true

External Shuffle Service配置

1、拷贝${SPARK_HOME}/yarn/目录下的spark--yarn-shuffle.jar到${HADOOP_HOME}/share/hadoop/yarn/lib/目录下;
2、在${HADOOP_HOME}/etc/hadoop/yarn-site.xml文件中添加如下配置:

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

注意:如果 “yarn.nodemanager.aux-services” 配置项已存在,则在 value 中添加 “spark_shuffle”,且用逗号和其他值分开。
3、增大NodeManager的heap size
通过在${HADOOP_HOME}/etc/hadoop/yarn-env.sh文件中设置YARN_HEAPSIZE的值(默认为1000)来实现,此处以配置为6000为例。

export YARN_HEAPSIZE=6000

4、重启集群中所有节点的Spark
5、重启集群中所有的YARN

猜你喜欢

转载自blog.csdn.net/wangkai_123456/article/details/88111178