Spark on yarn 动态资源配置

櫰木11个月前技术文章422

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


相关文章

开源Kubernetes工具

开源Kubernetes工具

类别 1:运行 Kubernetes 环境Minikube 仍然是最佳的几乎每个 Kubernetes 教程都是从“下载 Minikube”开始的,这在今天仍然行得通。如果你想在一个真正低风险的环境中...

em升级&添加节点实践

em升级&添加节点实践

一、扩容前准备 1.格式化磁盘分区并挂载(1)设置gpt分区表          &nbs...

HBase数据结构

1 RowKey与nosql数据库们一样,RowKey是用来检索记录的主键。访问HBASE table中的行,只有三种方式:1.通过单个RowKey访问2.通过RowKey的range(正则)3.全表...

图片

企业Oracle RAC上云闲谈

随着计算机技术和互联网的不断推进,云计算平台也更加趋于稳定、安全,其显著的性能、方便的资源管理、快捷的应用部署方式越来越为IT业者所接受。目前,云计算已经成为企业数字化转型的重要驱动力。面对基于Ora...

数据湖技术之iceberg(十)Structured Streaming实时写入Iceberg

数据湖技术之iceberg(十)Structured Streaming实时写入Iceberg

目前Spark中Structured Streaming只支持实时向Iceberg中写入数据,不支持实时从Iceberg中读取数据,下面案例我们将使用Structured Streaming从Kafk...

oracle开启关闭归档

一、开启归档1.开启前准备:备份spfileCreate pfile='d:pfileSID.ora' from spfile;OS上创建归档目录:+DATA_DG/arch设置归档路径:alter...

发表评论    

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