首页 > 其他分享 >spark资源动态调整--内容搬运,周知

spark资源动态调整--内容搬运,周知

时间:2023-05-09 11:13:43浏览次数:53  
标签:shuffle 资源分配 -- dynamicAllocation executor spark 动态 周知

  1. 动态资源分配

Spark的动态资源分配就是executor数据量的动态增减,具体的增加和删除数量根据业务的实际需要动态的调整。具体表现为:如果executor数据量不够,则增加数量,如果executor在一段时间内空闲,则移除这个executor。

动态增加executor配置项:spark.dynamicAllocation.schedulerBacklogTimeout

说明:executor启动间隔spark.dynamicAllocation.schedulerBacklogTimeout(默认1s)。当task到来时,spark会根据启动间隔依次启动executor,如果资源充足,则每次按照spark.dynamicAllocation.sustainedSchedulerBacklogTimeout的值启动1,2,4…个executor,直至资源分配得到满足。

动态移除executor配置项:spark.dynamicAllocation.executorIdleTimeout

说明:如果executor的空闲间隔超过spark.dynamicAllocation.executorIdleTimeout设置的值(默认60s)的话,则该executor会被移除,除非内存里面有缓存数据。

  1. 动态资源分配的开启

(1)       spark.dynamicAllocation.enabled=true,表示开启动态资源分配功能

(2)       spark.shuffle.service.enabled=true,表示在nodemanager上开启shuffle功能,只有这两个配置项都开启的时候,动态资源分配功能才算生效。

PS:以spark on yarn为例,spark.shuffle.service.enabled=true,还需要在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>xxxx</value>
    </property>
  1. 动态executor相关配置(spark-default.conf)汇总和说明

参数名

默认值

描述

spark.dynamicAllocation.enabled

false

启动态资源分配功能开关

spark.shuffle.service.enabled

false

在nodemanager上开启shuffle功能开关

spark.dynamicAllocation.cachedExecutorIdleTimeout

infinity

如果executor内有缓存数据,并且空闲了配置项的值的时间(秒)。则remove该executor。默认值无限制,也就是如果有缓存数据,则不会remove该executor

spark.dynamicAllocation.executorIdleTimeout

60s

executor空闲时间达到该规定值,则将该executor被回收

spark.dynamicAllocation.initialExecutors

spark.dynamicAllocation.minExecutors

Driver拉起SparkContext时初始executor数

spark.dynamicAllocation.maxExecutors

infinity

最大使用的executor数,默认无限制

spark.dynamicAllocation.minExecutors

0

最少保留的executor数

spark.dynamicAllocation.schedulerBacklogTimeout

1s

当task到来时,开始分配executor的时间间隔

spark.dynamicAllocation.sustainedSchedulerBacklogTimeout

1s

当task到来后,已经开始分配executor后,再次申请executor的时间间隔,直至申请到足够的资源

  1. 总结

通过设置合理的minExecutors-maxExecutors等配置项的值,Spark的动态资源分配使集群的资源更能充分的按需使用。华为云DLI数据湖探索服务在开源Spark基础上进行了大量的性能优化与服务化改造,兼容Apache Spark生态和接口,动态资源分配同样在DLI Spark作业上兼容使用,用户只需要在spark参数列表里配置相应的参数即可方便的使用。

文章来源:华为云社区

文章链接:https://bbs.huaweicloud.com/blogs/detail/196158

文章作者:霞光 

标签:shuffle,资源分配,--,dynamicAllocation,executor,spark,动态,周知
From: https://www.cnblogs.com/jia-tong/p/17384254.html

相关文章

  • define和typedef的区别
    #defineLGlongtypedeflongLG; 1.define是宏定义,不是语句,末尾不加分号,而typedef要加;2.#define [sign] [content],define宏定义是先定义符号,然后后面跟上符号要替换的内容,   typedef [type] [sign],typedef是将某种已有的类型用自定义符号代替,因此自定义符号......
  • 同余方程学习笔记
    一、裴蜀定理裴蜀定理(或贝祖定理)得名于法国数学家艾蒂安·裴蜀,说明了对任何整数\(a,b\)和它们的最大公约数\(d\),关于未知数\(x\)和\(y\)的线性不定方程(称为裴蜀等式):若\(a,b\)是整数,且\(\gcd(a,b)=d\),那么对于任意的整数\(x,y,ax+by\)都一定是\(d\)的倍数。特别地,......
  • socket
     #字节序转换函数、IP地址转换函数/*网络字节序采用大端网络通信时,需要将主机字节序转换成网络字节序(大端),另外一个主机获取到数据后根据情况将网络字节序转换成主机字节序#include<arpa/inet.h>//转换32位数据,一般用于转换ip......
  • python与go的对接
    python与go的对接在项目中遇到的问题,go写的程序需要被python调用,要将项目打包成.so文件首先要确保gobuild能编译出可执行文件,再打包成.so文件,因为原理与gobuild是一样的编译用测试项目来记录解决过程测试环境:windows64源码目录结构:---test|___Add___add.go|___......
  • 人大金仓数据库迁移工具web版访问方式
    1.新版使用谷歌浏览器进行访问访问地址: http://localhost:54523/默认用户名及密码:kingbase/kingbase2. 老版使用谷歌浏览器进行访问访问地址:http://localhost:8080/默认用户名及密码:admin/123456&*会话保存策略:会话保存时间为一天,服务重启或登出失......
  • 数据结构实训_银行管理系统
    记录下自己寒假写的千行代码,虽然千行,但是质量不高,但是好歹自己写的,记录下嘿嘿#include<bits/stdc++.h>usingnamespacestd;constintINF=0x3f3f3f3f;//----------------------------------------顾客信息-----------------------------------------structnode{in......
  • OpenCL入门例程
    OpenCL是一个并行计算库。在VisualStudio中的配置类似于OpenCV,只需要把开发包下载下来,里面有include、lib、bin文件夹,在项目设置里添加上就行了。一般Windows系统自己带的就有OpenCL.dll,在Windows/System32/文件夹里。不同于英伟达的CUDA编程自己搞了个编译器集成到VisualStudio......
  • 使用LaTeX的bibitems引用时按照引用顺序对文献进行编号
    直接往tex文件中写入bibitem格式的参考文献难以满足按顺序引用文献的要求,参考https://zhuanlan.zhihu.com/p/468694034,可以使用GitHub的这个项目:https://github.com/LaTeX-Bibitem-Styler/latex-bibitemstyler首先将项目下载到本地,然后将latex项目中的main.tex分为两个文件,第一个......
  • offsetHeight、clientHeight、scrollHeight的区别
    1.盒子模型介绍这三个属性之前先来了解一下CSS盒子模型。盒子模型顾名思义就是盒子的意思,盒子里面可以装很多东西。组成一个完整的盒子主要包括下面几个部分:widthheightpaddingbordermarginbox-sizing(用来区别正常盒模型和怪异盒子模型)盒子模型又分为了正常盒模型和......
  • [SWPUCTF 2021 新生赛]简简单单的逻辑
    得到一个.py文件,一般是没壳的,不过还是要养成习惯,查个壳:意料之中,啥也没有,打开文件:给了我们一个加密逻辑,然后最后一行给了一个结果:那么就是根据上述的逻辑,反解密出flag就好了分析一下上述逻辑:首先对list进行变化得到key的值(怎么变化不用理,因为用不到,为啥因为是异或昂,异或的特......