Spark on yarn 动态资源配置

櫰木2年前技术文章1076

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


相关文章

kafka模拟消费报错 ISR缺失 指定offset提取数据失败场景

kafka模拟消费报错 ISR缺失 指定offset提取数据失败场景

测试集群信息kafka版本:3.0.0172.16.120.236  kafka-id: 0172.16.121.150  kafka-id: 1172.16.121.225  kafka-id: 2...

MySQL运维实战之备份和恢复(8.4)xtrabackup恢复全量备份

恢复全量备份恢复全量备份大致可以分成以下几步:解压备份文件、prepare备份文件、将数据copy到目标实例相关目录、启动数据库实例。解压文件如果备份时使用了xbstream,需要先解压备份文件。我们...

HDP-Yarn开启CPU调度和隔离

HDP-Yarn开启CPU调度和隔离

进入到ambari主界面 点击yarn 点击config CPU Scheduling and Isolation 设置为enable修改高级配置点击ADVANCED搜索需要修改的配yarn.node...

Phoenix SQLLine快速使用

Phoenix SQLLine快速使用

1、启动在Phoenix主目录下bin文件夹中,执行以下命令:bin/sqlline.py master其中master为Zookeeper中的节点,如果有多个节点,中间使用逗号分开。执行该命令后,客...

MySQL 中的状态变量

前言本篇文章介绍一些 MySQL 中常用的监控指标,常见的监控工具都是采集 MySQL 中的状态变量(status variables)理解这些状态变量,可以更好的帮助我们理解 MySQL 监控的含义...

Flume使用案例之Flume与Flume之间数据传递,多Flume汇总数据到单Flume

目标:flume11监控文件hive.log,flume-22监控某一个端口的数据流,flume11与flume-22将数据发送给flume-33,flume33将最终数据写入到HDFS。分步实现:1...

发表评论    

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