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

芒果1年前技术文章840

环境
节点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简介

相关文章

A集群导入B集群中的高可用版rancher,一直处于pending状态

A集群导入B集群中的高可用版rancher,一直处于pending状态

问题现象:已知在B集群中采用helm方式部署了一个高可用版本的rancher,该rancher中已经配置导入了三套集群,并且三套集群状态在rancher控制台处均显示正常,日常可借助该rancher管...

CPU--使用率

CPU--使用率

一、CPU和任务统计信息查询/proc/stat第一行表示所有CPU的累加其他列表示不同场景下CPU的累加节拍数,单位:USER_HZ即10ms➜  ~ cat ...

Yarn调度器对比

1)Hadoop调度器重要分为三类:FIFO 、Capacity Scheduler(容量调度器)和Fair Sceduler(公平调度器)。Apache默认的资源调度器是容量调度器;CDH...

hbase-auto balancer失效

hbase-auto balancer失效

背景集群中,发现hbase 的compaction 队列一直增长,出现hang住的情况,排查发现,一些表的region集中在某些机器上,分布不均匀。但是排查发现auto balancer是默认开启的。...

MongoDB的写入安全级别

一、MongoDB写入安全级别为提高数据写入的安全性,在客户端可以设置相应的安全级别来进行控制,MongoDB提供四种写入级别,分别是:1、非确认式写入(Unacknowledged)非确认式写入不会...

Ubuntu 网卡启动及配置

Ubuntu 网卡启动及配置

问题分析打开虚拟机后发现没有网卡网络。查看网卡信息sudo ip link set ens33 up1得到本机的所有网卡信息,例如我这边网卡为ens33启动网卡启动网卡后发现依然网卡没有IP地址。配置...

发表评论    

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