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

芒果11个月前技术文章347

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

相关文章

DBeaver连接Trino

DBeaver连接Trino

1、背景trino 开启https,需要通过dbeaver进行连接DBeaver版本:21.2.02、解决办法下载安装dbeaver打开选择选择trino填写主机如果trino开启https,则可以使...

MySQL运维实战(2.3)MySQL的权限体系和一个例子

mysql权限按授权范围分为3大类全局权限。全局权限是用于管理系统模块的权限。跟具体的数据库或对象无关。授权时需要指定为*.*数据库权限对象权限对于具体的数据库对象的权限,如表、字段级别的权限。MyS...

Logstash迁移ES集群

一、背景介绍   logstash 支持从一个 ES 集群中读取数据然后写入到另一个 ES 集群,因此可以使用 logstash 进行数据迁移,使用 logstash 进行迁移前,需要注意以下几点:需...

SQL Server优化入门系列(四)——  找到Top SQL

SQL Server优化入门系列(四)—— 找到Top SQL

说明从会话信息中我们可以查看实例当前正在运行的SQL、当前被Block的SQL。但是如果要查看过去一段时间执行的SQL,我们有几个选择1、通过外部SQL审计平台记录所有SQL。2、通过SQL Serv...

Tomcat调优处理

1、隐藏版本号进入tomcat的lib目录找到catalina.jar文件unzip catalina.jar之后会多出两个文件夹 进入org/apache/catalina/util编辑配置文件Se...

Kubernetes节点与令牌管理

令牌管理查看令牌```Plain Text [root@master ~]# kubeadm token list## **删除令牌**Plain Text [root@master ~]# ku...

发表评论    

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