Spark参数配置不合理的情况
1.1 内存设置 💾
常见的内存设置有两类:堆内和堆外 💡
我们作业中大量的设置 driver 和 executor 的堆外内存为 4g,造成资源浪费 📉。
通常 executor 堆外内存在 executor.cores=1 的时候,1g 足够了,正常来说最大值不超过 2g;driver 1g-2g 足够了 ✅。
注意:如果有 c++ 库这种计算,executor 堆外内存可以保持原有配置。 📚
| 各版本推荐配置的 key 以及配置值 | 各版本不推荐配置的 key 及配置值 | 过去无效配置,建议删除 🚫 | |
|---|---|---|---|
| driver 堆内 💽 | –conf spark.driver.memory=6G | 无 | 无 |
| driver 堆外 💾 | –conf spark.driver.memoryOverhead=2G | –conf spark.yarn.driver.memoryOverhead=4g | –conf spark.yarn.driver.direct* |
| executor 堆内 💽 | –conf spark.executor.memory=3G | 无 | 无 |
| executor 堆外 💾 | –conf spark.executor.memoryOverhead=1G | –conf spark.yarn.executor.memoryOverhead=4g | –conf spark.yarn.executor.direct* |
1.2 动态资源调度相关参数 📊
不开启动态资源管理或者参数设置不合理,会导致明显的资源浪费 💸:
涉及到动态资源调度的参数主要有以下几个 📝:
| 参数名 🛠️ | 默认值 ⚙️ | 作用 🧐 | 错误使用案例 🚫 | 使用建议 🌟 |
|---|---|---|---|---|
| spark.dynamicAllocation.enabled ✅ | false | 开启资源动态能力,在 executor 空闲时可以释放,需要资源是发起请求 | 不开启 | 开启资源动态功能,尤其是运行时间比较长或者有数据倾斜的情况 🌟 |
| spark.dynamicAllocation.executorIdleTimeout ⏲️ | 60s | executor 空闲多久开始释放资源 | 30000 或者 1200s 过大的数值 🚫 | 60s-120s 🌟 |
| spark.dynamicAllocation.minExecutors 📉 | 0 | 最小持有的 executor 数,到达该值,空闲也不会释放 | 200 🚫 | 推荐设置为 1-5 🌟 |
| spark.dynamicAllocation.maxExecutors 📈 | infinity | 作业申请 executor 资源的最大值 | 1000 以上 🚫 | 通常最大值建议 256-500 即可,小作业可以更小的设置 🌟 |
1.3 序列化参数 📝
Spark 中序列化主要有两种,java、kryo。相对来说 kryo 序列化效率更高,作为推荐 💡:
1 spark.serializer org.apache.spark.serializer.KryoSerializer
与 kryo 相关的设置有 📊:
1 spark.kryoserializer.buffer,默认值 64k,这个不需要设置,设置值过大会常驻
2 spark.kryoserializer.buffer.max,默认值 64m
不需要设置 spark.kryoserializer.buffer,默认的 buffer 会在 64k 到 64m 动态伸缩,没有特殊需要不需要设置,如果数据比较大,设置 spark.kryoserializer.buffer.max
1.4 并行度设置 ⚙️

常见的并行度配置有两个 🔧:
- spark.default.parallelism 默认值:会继承上游 stage 的并行度,主要用于 rdd 的 shuffle 操作
- spark.sql.shuffle.partitions 默认值 200,主要用于 sql 的 shuffle 操作
算法作业绝大多数是 rdd 操作,合理设置并行度,事半功倍 💪,后面会专门介绍怎么优化自己的并行度设置 🌟
spark.default.parallelism 不建议设置的非常大。 🚫
相关文章:
Spark参数配置不合理的情况
1.1 内存设置 💾 常见的内存设置有两类:堆内和堆外 💡 我们作业中大量的设置 driver 和 executor 的堆外内存为 4g,造成资源浪费 📉。 通常 executor 堆外内存在 executor.cores1 的时候,1g 足够了&…...
【OpenGL学习】OpenGL不同版本渲染管线汇总
文章目录 一、《OpenGL编程指南》第6版/第7版的渲染管线二、《OpenGL编程指南》第8版/第9版的渲染管线 一、《OpenGL编程指南》第6版/第7版的渲染管线 图1. OpenGL 2.1、OpenGL 3.0、OpenGL 3.1 等支持的渲染管线 二、《OpenGL编程指南》第8版/第9版的渲染管线 图2. OpenGL …...
等保测评练习
等级保护初级测评师试题11 姓名: 成绩: 判断题(10110分) 1. windows使用"service -status-all | grep running"命令查看危险的网络服务是否已经关闭。( F ) …...
第十五届蓝桥杯大赛 国赛 pb组F题【括号与字母】(15分) 栈的应用
博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 试题F:括号与字母 【问题描述】 给定一个仅包含小写字母和括号的字符串 S …...
MYSQL 三、mysql基础知识 4(存储过程与函数)
MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调用存储过程和函数即可。 一、存储过程概述: 1.1理解: 含义&am…...
鸿蒙开发文件管理:【@ohos.statfs (statfs)】
statfs 该模块提供文件系统相关存储信息的功能,向应用程序提供获取文件系统总字节数、空闲字节数的JS接口。 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import stat…...
C++和C语言到底有什么区别?
引言:C和C语言是两种非常常见的编程语言,由于其广泛的应用和灵活性,它们在计算机科学领域内受到了广泛的关注。虽然C是从C语言发展而来的,但是这两种语言在许多方面都有所不同。本文将对C和C语言进行比较和分析,以便更…...
【Centos】深度解析:CentOS下安装pip的完整指南
【Centos】深度解析:CentOS下安装pip的完整指南 大家好 我是寸铁👊 总结了一篇【Centos】深度解析:CentOS下安装pip的完整指南✨ 喜欢的小伙伴可以点点关注 💝 方式1(推荐) 下载get-pip.py到本地 sudo wget https://bootstrap.p…...
半导体PW和NPW的一些小知识
芯片制造厂内的晶圆主要由两种,生产晶圆(PW:Product Wafer)和非生产晶圆(NPW:None Product Wafer)。 一、生产晶圆(PW) 生产晶圆的一些关键特点: 高纯度硅材料:生产晶…...
后端启动项目端口冲突问题解决
后端启动项目端口冲突 原因: Vindows Hyper-V虚拟化平台占用了端口。 解决方案一: 查看被占用的端口范围,然后选择一个没被占用的端口启动项目。netsh interface ipv4 show excludedportrange protocoltcp 解决方案二: 禁用H…...
【优选算法】优先级队列 {优先级队列解决TopK问题,利用大小堆维护数据流的中位数}
一、经验总结 优先级队列(堆),常用于在集合中筛选最值或解决TopK问题。 提示:对于固定序列的TopK问题,最优解决方案是快速选择算法,时间复杂度为O(N)比堆算法O(NlogK)更优;而对于动态维护数据流…...
11 IP协议 - IP协议头部
什么是 IP 协议 IP(Internet Protocol)是一种网络通信协议,它是互联网的核心协议之一,负责在计算机网络中路由数据包,使数据能够在不同设备之间进行有效的传输。IP协议的主要作用包括寻址、分组、路由和转发数据包&am…...
【java】【python】leetcode刷题记录--二叉树
144.二叉树的前序遍历 题目链接 前、中、后的遍历的递归做法实际上都是一样的,区别就是遍历操作的位置不同。 对于先序遍历,也就是先根,即把查看当前结点的操作放在最前面即可。 class Solution {public List<Integer> preorderTrav…...
EVA-CLIP实战
摘要 EVA-CLIP,这是一种基于对比语言图像预训练(CLIP)技术改进的模型,通过引入新的表示学习、优化和增强技术,显著提高了CLIP的训练效率和效果。EVA-CLIP系列模型在保持较低训练成本的同时,实现了与先前具有相似参数数量的CLIP模型相比更高的性能。特别地,文中提到的EV…...
限定法术施放目标
实现目标 法术只对特定 creature | gameobject 施放,否则无法施放 实现方法 conditions SourceTypeOrReferenceId:13(CONDITION_SOURCE_TYPE_SPELL_IMPLICIT_TARGET)SourceGroup:受条件影响的法术效果掩码…...
【通信原理】数字频带传输系统
二进制数字调制,解调原理:2ASK,2FSK 二进制数字调制,解调原理:2PSK,2DPSK 二进制数字已调制信号的功率谱 二进制数字调制系统的抗噪声性能 二进制调制系统的性能总结...
数据价值管理-数据验收标准
前情提要:数据价值管理是指通过一系列管理策略和技术手段,帮助企业把庞大的、无序的、低价值的数据资源转变为高价值密度的数据资产的过程,即数据治理和价值变现。第一讲介绍了业务架构设计的基本逻辑和思路。前面我们讲完了数据资产建设标准…...
vue3模板语法总结
1. 响应式数据 Vue 3中的数据是响应式的,即当数据发生变化时,视图会自动更新。这是通过使用JavaScript的getter和setter来实现的。 2. 组件化 Vue 3采用组件化开发方式,允许创建可复用的组件。 每个组件都有自己的作用域,并且…...
Spring Cloud 之 GateWay
前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言前言1、通过API网关访问服务2、Spring Cloud GateWay 最主要的功能就是路由…...
可转债全部历史因子数据,提供api支持
今天在写可转债系统,顺便下载了一下服务器的可转债数据,给大家研究使用 from trader_tool.stock_data import stock_datafrom trader_tool.lude_data_api import lude_data_apiimport osclass convertible_bond_back_test_system: 可转债回测系统…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...
