spark大数据任务提交参数的优化记录分析

 更新时间:2023年05月11日 16:29:23   作者:是奉壹呀  
这篇文章主要介绍了spark大数据任务提交参数的优化记录分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

起因

新接触一个spark集群,明明集群资源(core,内存)还有剩余,但是提交的任务却申请不到资源。

分析

环境

spark 2.2.0 基于yarn集群

参数

spark任务提交参数中最重要的几个:

spark-submit --master yarn --driver-cores 1 --driver-memory 5G --executor-cores 2 --num-executors 16 --executor-memory 4G

driver-cores driver端核数 driver-memory driver端内存大小 executor-cores 每个执行器的核数 num-executors 此任务申请的执行器总数 executor-memory 每个执行器的内存大小

那么,该任务将申请多少资源呢?

申请的执行器总内存数大小=num-executor * (executor-memory +spark.yarn.executor.memoryOverhead) = 16 * (4 + 2) = 96 申请的总内存=执行器总内存+dirver端内存=101 申请的总核数=num-executor*executor-core + yarn.AM(默认为1)=33 运行的总容器(contanier) = num-executor + yarn.AM(默认为1) = 17

所以这里还有一个关键的参数 spark.yarn.executor.memoryOverhead

这个参数是什么意思呢? 堆外内存,每个executor归spark 计算的内存为executor-memory,每个executor是一个单独的JVM,这个JAVA虚拟机本向在的内存大小即为spark.yarn.executor.memoryOverhead,不归spark本身管理。在spark集群中配置。

也可在代码中指定 spark.set("spark.yarn.executor.memoryOverhead", 1)

这部份实际上是存放spark代码本身的究竟,在executor-memory内存不足的时候也能应应急顶上。

问题所在

假设一个节点16G的内存,每个executor-memory=4,理想情况下4x4=16,那么该节点可以分配出4个节点供spark任务计算所用。 1.但应考虑到spark.yarn.executor.memoryOverhead. 如果spark.yarn.executor.memoryOverhead=2,那么每个executor所需申请的资源为4+2=6G,那么该节点只能分配2个节点,剩余16-6x2=4G的内存,无法使用。

如果一个集群共100个节点,用户将在yarn集群主界面看到,集群内存剩余400G,但一直无法申请到资源。

2.core也是一样的道理。

很多同学容易忽略spark.yarn.executor.memoryOverhead此参数,然后陷入怀疑,怎么申请的资源对不上,也容易陷入优化的误区。

优化结果

最终优化结果,将spark.yarn.executor.memoryOverhead调小,并根据node节点资源合理优化executor-memory,executor-core大小,将之前经常1.6T的内存占比,降到1.1左右。并能较快申请到资源。

以上就是spark任务提交参数的优化记录分析的详细内容,更多关于spark任务提交参数优化的资料请关注程序员之家其它相关文章!

相关文章

  • 深入剖析从输入URL到页面显示过程原理

    深入剖析从输入URL到页面显示过程原理

    这篇文章主要为大家深入剖析了从输入URL到页面显示这中间发生的过程原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 编程之显示/隐式声明

    编程之显示/隐式声明

    显示声明 是程序中的一条说明语句,它列出一批变量名并指明这些变量的类型。隐式声明 指通过某种默认协定的方法将变量名与类型绑定。
    2011-01-01
  • 使用SSH快速下载Git项目的实现方法

    使用SSH快速下载Git项目的实现方法

    下面小编就为大家分享一篇使用SSH快速下载Git项目的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • 回车和换行有什么区别?我们平时按下的Enter键是回车还是换行

    回车和换行有什么区别?我们平时按下的Enter键是回车还是换行

    如果用过机械打字机,就知道回车和换行的区别了。换行就是把滚筒卷一格,不改变水平位置。回车就是把水平位置复位,不卷动滚筒
    2011-03-03
  • IntelliJ IDEA2020.3 新特性(小结)

    IntelliJ IDEA2020.3 新特性(小结)

    这篇文章主要介绍了IntelliJ IDEA 2020.3 新特性,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-12-12
  • 详解IDEA Git Reset 选项说明

    详解IDEA Git Reset 选项说明

    这篇文章主要介绍了详解IDEA Git Reset 选项说明,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 基于prompt?tuning?v2训练好一个垂直领域的chatglm-6b

    基于prompt?tuning?v2训练好一个垂直领域的chatglm-6b

    这篇文章主要为大家介绍了基于prompt?tuning?v2训练好一个垂直领域的chatglm-6b的过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • windows下gitbash安装教程(小白教程)

    windows下gitbash安装教程(小白教程)

    这篇文章主要介绍了windows下gitbash安装教程(小白教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • HTML5 移动页面自适应手机屏幕宽度详解

    HTML5 移动页面自适应手机屏幕宽度详解

    这篇文章主要介绍了HTML5 移动页面自适应手机屏幕宽度的相关资料,需要的朋友可以参考下
    2016-09-09
  • 详解Visual Studio使用Git忽略不想上传到远程仓库的文件

    详解Visual Studio使用Git忽略不想上传到远程仓库的文件

    这篇文章主要介绍了Visual Studio使用Git忽略不想上传到远程仓库的文件,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11

最新评论

?


http://www.vxiaotou.com