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. 动态分配:在资源紧张的环境或多租户模式下建议开启,可避免资源浪费。
相关推荐
鸿乃江边鸟1 天前
Spark Datafusion Comet 向量化Rust Native--CometShuffleExchangeExec怎么控制读写
大数据·rust·spark·native
伟大的大威2 天前
NVIDIA DGX Spark (ARM64/Blackwell) Kubernetes 集群 + GPU Operator 完整部署指南
大数据·spark·kubernetes
小邓睡不饱耶2 天前
深度实战:Spark GraphX构建用户信任网络,精准锁定高价值目标用户(含完整案例)
大数据·spark·php
B站计算机毕业设计超人2 天前
计算机毕业设计hadoop+spark+hive共享单车预测系统 共享单车数据可视化分析 大数据毕业设计(源码+LW文档+PPT+讲解)
大数据·hadoop·python·深度学习·spark·毕业设计·课程设计
B站计算机毕业设计超人2 天前
计算机毕业设计Python+Spark+Hadoop+Hive微博舆情分析 微博情感分析可视化 大数据毕业设计(源码+LW文档+PPT+讲解)
大数据·hadoop·爬虫·python·spark·cnn·课程设计
yumgpkpm2 天前
华为昇腾300T A2训练、微调Qwen过程,带保姆式命令,麒麟操作系统+鲲鹏CPU
hive·hadoop·华为·flink·spark·kafka·hbase
TTBIGDATA2 天前
【Hue】Ambari开启 Kerberos 后,Hue 使用 Spark SQL出现凭证不统一问题处理
大数据·sql·spark·ambari·kerberos·hue·bigtop
鸿乃江边鸟3 天前
Spark Datafusion Comet 向量化Rust Native--Native算子(CometNativeExec)怎么串联执行
大数据·rust·spark·native
Light603 天前
数智孪生,金流·物流全透视:构建某银行制造业贷后风控新范式—— 基于领码 SPARK 融合平台的技术解决方案
大数据·spark·数字孪生·实时监控·物联网金融·供应链风控·ai决策
小邓睡不饱耶3 天前
基于Spark GraphX构建用户信任网络:精准定位高价值目标用户
大数据·spark·php