Ambari集群Spark3.x动态资源分配

芒果2年前技术文章1135

环境
节点hdp01
HDP3.1.5
hdp02
Spark3.2.4
hdp03
7D23FE6B-3844-4913-9C79-FECF5953A082.png
首先Spark配置History服务
配置spark-defaults.conf
spark.master                     spark://hdp01:7077
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://ha/sparklogs
spark.history.fs.logDirectory     hdfs://ha/sparklogs
D42C66C6-637D-40AD-85EC-ED320ADCFC85.png
去hdfs创建对应目录
hdfs dfs -mkdir hdfs://ha/sparklogs
开启start-history-server.sh服务
sbin/start-history-server.sh
查看日志情况:
vim /opt/spark/logs/spark-root-org.apache.spark.deploy.history.HistoryServer-1-hdp01.out
启动成功
3C42425E-CFF6-47A6-B9A8-8C274B8E0D8B.png
查看History Server WEB
F67849E5-782F-4913-915D-7EE6C0D50C0A.png
开启动态资源分配前:
提交一个spark任务
bin/spark-shell --master yarn
6127B081-E31D-41FE-BB2E-EC2EB3064550.png

可以看到启动后 已经分配了资源

03160061-2423-4123-A418-979302AC27A2.png

首先配置动态资源分配参数
拷贝spark-version-yarn-shuffle.jar(包含了external shuffle的spark实现)到yarn的lib下
cp /opt/spark/yarn/spark-3.2.4-yarn-shuffle.jar /usr/hdp/3.1.5.0-152/hadoop-yarn/lib/
3F31AFDE-4E3C-4608-B602-C6E9C3F9E52C.png
分发其他节点
[root@hdp01 lib]# scp spark-3.2.4-yarn-shuffle.jar hdp02:$PWD
spark-3.2.4-yarn-shuffle.jar                                                                    100%   12MB  12.5MB/s   00:01    
[root@hdp01 lib]# scp spark-3.2.4-yarn-shuffle.jar hdp03:$PWD
spark-3.2.4-yarn-shuffle.jar                                                                    100%   12MB  12.5MB/s   00:00    
[root@hdp01 lib]#
修改yarn-site.xml配置文件,增加spark shuffle相关的配置:(Ambari界面修改)
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>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>7337</value>
</property>

spark.shuffle.service.enabled=true
yarn.nodemanager.aux-services.spark_shuffle.classpath=/opt/spark/yarn/*
yarn.nodemanager.aux-services.spark2_shuffle.classpath=/opt/spark/yarn/*

重启yarn集群

测试动态资源分配
bin/spark-shell \
--master yarn --executor-memory 1g --total-executor-cores 1 \
--conf spark.shuffle.service.enabled=true \
--conf yarn.nodemanager.aux-services.spark_shuffle.classpath=/opt/spark/yarn/*  \
--conf spark.dynamicAllocation.enabled=true  \
--conf spark.dynamicAllocation.executorIdleTimeout=60s \
--conf spark.shuffle.service.port=7337 

查看spark webui 

可以看到没有执行action操作==没有分配Executor

EC0163A9-E03D-454F-AA76-C58696BE1717.png


在spark-shell执行操作
val lineText=sc.textFile("hdfs://ha/spark.txt")
lineText.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).foreach(println)

执行后我们可以看到 执行的时候分配了Executor
6B79F6DF-305C-4059-B67A-C03E912BF149.png
但是过了60s之后Executor没有任务运行 就会remove Executor释放资源。
 再次运行
lineText.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).foreach(println)


返回列表

上一篇:离线部署Mysql 8.X

下一篇:Hue简介

相关文章

MongoDB创建索引

一、后台创建索引默认情况下,当我们对一个比较热点的集合创建索引时,直到索引创建完毕,该集合都是无法读写的。1、后台创建索引语法db.collection.createIndex( { filed: 1...

REPMGR-PG高可用搭建(三)

REPMGR-PG高可用搭建(三)

2.2.2repmgr安装兼容性3节点均安装repmgr1.安装依赖 # yum install flex 2.下载解压 # wget -c https://repmgr.org/downloa...

hadoop集群集成Iceberg操作指导

hadoop集群集成Iceberg操作指导

hadoop集群集成Iceberg操作指导书一、    准备工作1.       大数据集群运行正常,完成hi...

Apache hive 对接达梦数据库

Apache hive 对接达梦数据库

1、背景由于国产化需求,客户需要使用dm数据库作为hive的元数据库。需要进行对应适配2、配置本次使用的环境hive 3.1.3 hadoop 3.2.4 ranger 2.3.0 Spark ...

Serverless 技术选型

Serverless 技术选型

在 Serverless 这个大领域中,不只有函数计算这一种产品形态和应用类型,而是面向不同的用户群体和使用习惯,都有其各自适用的 Serverless 产品。例如面向函数的函数计算、面向应用的 Se...

oracle自带存储过程的压测使用

1、使用前提条件:A、timed_statistics参数为true B、sysdba权限 C、11g及以上版本 D、ASYNCH_IO开启通过运行以下查询,确保为数据文件启用异步 I/OCOL NA...

发表评论    

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