Spark on yarn 动态资源配置

櫰木1年前技术文章778

1、背景

spark on yarn 的环境下,开源的spark 默认是关闭动态分配申请资源的。每次提交时,需要手动定义--num-executors 的数量。

为了提交任务方便,需要开启动态分配资源

spark.dynamicAllocation.enabled   true

但是需要注意的是,在提交实时任务时,需要手动定义资源数。不然有可能会将所有yarn的资源占用

2、配置

2.1 配置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>
  <property>
    <name>spark.shuffle.service.port</name>
    <value>7037</value>
  </property>
  <property>
    <name>spark.yarn.shuffle.service.metrics.namespace</name>
    <value>sparkShuffleService</value>
  </property>

在yarn.nodemanager.aux-services添加spark_shuffle

添加yarn.nodemanager.aux-services.spark_shuffle.class,spark.shuffle.service.port,spark.yarn.shuffle.service.metrics.namespace参数

2.2 配置spark jar包

在spark的安装目录yarn目录下找到spark-xxxx-yarn-shuffle.jar包

将其复制到hadoop home的share/hadoop/yarn/目录下。

本次测试集群的目录为/opt/hadoop/share/hadoop/yarn/

cp /opt/spark/yarn/spark-3.3.1-yarn-shuffle.jar /opt/hadoop/share/hadoop/yarn/

2.1和2.2的操作在所有yarn 节点执行。

重启yarn 服务。登录8088的yarn web ui检测nodemanager是否启动成功

image.png

2.3 spark 配置开启动态资源

在spark-defaults.conf中定义配置

spark.dynamicAllocation.enabled true
spark.shuffle.service.enabled true
spark.dynamicAllocation.initialExecutors 2
spark.dynamicAllocation.minExecutors 1
spark.dynamicAllocation.maxExecutors 100
spark.executor.instances 2

在配置文件中定义是默认开启的。也可以在提交时进行定义

spark-sql  --master yarn --conf spark.shuffle.service.enabled=true --conf spark.dynamicAllocation.enabled=true -e "SELECT COUNT(*) FROM test1"

image.png


相关文章

trino组件对接alluxio(三)

trino组件对接alluxio(三)

本文是基于已经部署了trino和alluxio的基础上,进行的trino与alluxio的组件对接,alluxio已经开启了高可用模式。安装部署1、增加alluxio配置在core-site.xml和...

Doris部署介绍

标准部署该文档主要介绍了部署 Doris 所需软硬件环境、建议的部署方式、集群扩容缩容,以及集群搭建到运行过程中的常见问题。在阅读本文档前,请先根据编译文档编译 Doris。软硬件需求概述Doris...

k8s service IP不能ping通?

k8s service IP不能ping通?

1、先看下serviceIP是怎么来的?serviceIP是serviceController生成的,参数--service-cluster-ip-range string会配置在controller...

docker服务端口不通

docker服务端口不通

一、问题现象两台服务器在同一个安全组,docker启动的服务,从另一台机器telnet该docker服务的端口不通。二、排查过程1.从另一台机器telnet该机器的22端口,可以通。证明服务器的网络没...

keycloak高可用部署

keycloak高可用部署

添加keycloak应用rancher应用商店模式添加keycloak仓库地址rancher应用商店添加bitnami的helm仓库地址https://charts.bitnami.com/bitna...

ChaosBlade介绍

ChaosBlade介绍

ChaosBlade 是阿里巴巴开源的一款遵循混沌工程原理和混沌实验模型的实验注入工具,帮助企业提升分布式系统的容错能力,并且在企业上云或往云原生系统迁移过程中业务连续性保障。Chaosblade 是...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。