Spark提交任务的资源配置和优化

Spark 提交任务时主要可调的资源配置参数包括 Driver 资源(内存、CPU)、Executor 资源(数量、内存、CPU)以及 集群管理相关参数。配置和优化时一般结合集群硬件资源、数据规模、作业类型和作业复杂度(SQL / 机器学习) 来综合设置。

下面是提交过程参数配置实例:

shell 复制代码
spark-submit --driver-memory 4g \ # 指定Driver进程的内存大小(堆内存),影响不大。
--num-executors 15 # Executor 的总数量,Standalone/K8s 可直接设定;Yarn默认会动态分配。
--executor-memory 8g \ # 指定每个Executor的内存大小(堆内存),一般都是Execution会出现OOM,因为Storage会落盘。
--executor-cores 3 \ # 指定每个Executor核心数(真正并行数),4核心建议设成3。
--queue root.default \ # 设置Yarn的资源队列。
--conf spark.yarn.executor.memoryOverhead=2048 \ # 设置堆外内存大小,默认executor-memory的10%。
--conf spark.core.connection.ack.wait.timeout=300 # 设置通讯等待超时时间。
# 例如集群有15台机器,每台2个CPU核心,则指定15个Executor每个的核心为2。总并行度 = num-executors × executor-cores,尽量大于等于总分区数

资源优化的策略包括:

  1. 内存分配:
    executor-memory ≈ 节点内存 ÷ 每节点 Executor 数量 - 预留空间;
    num-executors × executor-cores 不要超过节点总核数。
  2. 并行度:一般建议 总 cores ≈ 分区数 或者稍大一些。SQL 场景调节 spark.sql.shuffle.partitions(默认 200 通常过大/过小都不好)。
  3. 动态分配:在资源紧张的环境或多租户模式下建议开启,可避免资源浪费。
相关推荐
极光代码工作室14 天前
基于数据仓库的电商数据分析平台
大数据·hadoop·python·spark·数据可视化
JLWcai2025100914 天前
铸造领域树脂砂轮|金利威多场景解决方案,20 + 配方覆盖全需求
mongodb·zookeeper·eureka·spark·rabbitmq·memcached·storm
ACP广源盛1392462567314 天前
GSV9001S@ACP#1080P 级视频处理芯片,物理 AI 普及终端的高性价比选择
大数据·人工智能·分布式·嵌入式硬件·spark
木心术114 天前
AMD Ryzen AI Halo与NVIDIA RTX Spark/DGX Spark两款AI个人主机的差异和优劣势
大数据·人工智能·spark
ACP广源盛1392462567315 天前
GSV5600@ACP#多接口协议转换芯片,物理 AI 便携终端的互联核心
大数据·人工智能·分布式·嵌入式硬件·spark
KaMeidebaby15 天前
卡梅德生物技术快报 | 噬菌体展示 12 肽文库在蛋白表位定位中的应用与实验数据
大数据·人工智能·架构·spark·新浪微博
ACP广源盛1392462567316 天前
GSV2221@ACP#DP 1.4 MST 多屏转换芯片,物理 AI 多模态交互的视觉中枢
大数据·人工智能·嵌入式硬件·gpt·spark
想ai抽16 天前
Spark Executor 因节点内存超限被杀的分析与应对
大数据·性能优化·spark
simidagogogo16 天前
生产环境推荐系统最隐蔽的坑:Training-Serving Skew 详解与实战
算法·spark·推荐算法
ACP广源盛1392462567316 天前
GSV6155@ACP#DP 1.4a 重定时器芯片,物理 AI 信号长距传输的稳定保障
大数据·人工智能·分布式·嵌入式硬件·spark