You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark 2.1.1 Standalone集群--total-executor-cores配置未生效问题咨询

问题分析与解决方案

针对你遇到的Spark Standalone集群作业核数分配不生效的问题,我整理了几个实用的排查方向和解决办法:

一、先确认集群的实际资源瓶颈

从你的描述看,集群总剩余29核但作业仅用6核,内存不足是最常见的诱因:
你指定了--executor-memory 24G,每个executor需要占用24G内存。如果你的Worker节点单台剩余内存不够24G,或者集群总剩余内存不足以支撑多个24G的executor,Spark Master就会限制executor的启动数量,自然达不到16核的总分配量。

快速排查步骤:

  1. 打开Spark Master的Web UI(默认地址http://<master-ip>:8080),查看每个Worker节点的:
    • Cores Used / Cores Total
    • Memory Used / Memory Total
  2. 核算剩余内存是否能支撑你的executor需求:
    • Spark 2.1.1默认每个executor占用1核,若要16核则需要16个executor,总内存需求是16 * 24G = 384G,看看集群剩余内存是否达标。
    • 如果剩余内存不够,这就是核心问题所在。

二、调整executor资源配置适配集群

根据集群实际资源情况,修改参数组合:

  • 降低--executor-memory:比如改成12G,减少单个executor的内存占用,就能启动更多executor来凑够16核。
  • 配合指定--executor-cores:比如设置--executor-cores 4,让每个executor用4核,仅需4个executor就能达到16核,总内存需求降至4 * 24G = 96G,更容易满足集群内存条件。

修改后的spark-submit命令示例:

PYSPARK_PYTHON="/usr/bin/python3.4" PYSPARK_DRIVER_PYTHON="/usr/bin/python3.4" \
/opt/spark/spark-2.1.1-bin-hadoop2.7/bin/spark-submit \
--master spark://XXXX.XXXX:7077 \
--conf "spark.sql.shuffle.partitions=2001" \
--conf "spark.port.maxRetries=200" \
--conf "spark.executorEnv.PYTHONHASHSEED=0" \
--executor-memory 12G \
--executor-cores 4 \
--total-executor-cores 16 \
--driver-memory 8G \
/home/XXXX/XXXX.py \
--spark_master "spark://XXXX.XXXX:7077" \
--topic "XXXX" \
--broker_list "XXXX" \
--hdfs_prefix "hdfs://XXXX"

三、检查作业并行度是否匹配资源

从你传入的--topic和--broker_list参数来看,这应该是一个Spark Streaming消费Kafka的作业。即使集群分配了16核,如果作业并行度不够,核也会处于闲置状态:

  • 检查Kafka Topic的分区数:如果Topic分区数少于16,DStream的并行度会受限于分区数,最多只能用到和分区数相同的核数。
  • 调整spark.streaming.kafka.maxRatePerPartition:如果限制了每个分区的消费速率,也会导致作业无法充分利用资源。
  • 确认计算逻辑的分区数:对于非Streaming的处理环节,确保RDD/DataFrame的分区数不低于总executor核数,避免并行度不足。

四、通过集群日志定位深层问题

如果以上方法都没解决,去Spark Master节点的日志目录(默认$SPARK_HOME/logs)查看Master日志,里面会有资源分配的详细记录,比如是否有Insufficient memory to launch executor这类报错,能直接定位具体的资源瓶颈。

内容的提问来源于stack exchange,提问作者Gal Shaboodi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:54:28