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

PySpark应用为何忽略集群中的其中一个Executor?

Spark应用仅使用单个Executor的排查原因
  • 资源配置限制

    • 核心数不足:默认情况下Spark应用可能仅请求1个核心,若每个Executor核数为1,应用只会占用一个Executor。可添加spark.executor.cores配置指定单Executor核数,或通过spark.cores.max设置应用可使用的总核心数(如两个Executor各1核时设为2)。
    • 内存不匹配:虽配置了spark.executor.memory=512m,被忽略的Executor所在节点可能实际内存不足,导致无法分配任务。查看该Executor日志,确认是否有内存启动报错。
  • 节点属性/标签限制
    若两个Executor节点被设置了不同的节点标签,而应用未配置允许使用所有标签节点,会仅调度到符合标签的节点。检查Master界面节点属性,确认标签差异,可在应用配置中添加.config("spark.node.label", "*")允许使用所有节点。

  • 任务并行度不足
    若应用数据量小、任务分区数少于Executor数量,Spark仅启动对应分区数的任务,不会用到所有Executor。对RDD/DataFrame执行repartition增加分区数,或针对SQL任务设置spark.sql.shuffle.partitions为Executor总核数级别的数值。

  • Executor通信异常
    Master显示Executor存活,但Driver与该Executor可能存在网络连通问题,比如连接超时、心跳失败。查看Driver日志和被忽略的Executor日志,排查通信错误信息。

  • Master地址配置错误
    代码中master("spark://localhost:master-ip")写法错误,localhost与master-ip冲突,需替换为实际Master节点的IP或主机名(如spark://192.168.1.100:7077)。地址错误可能导致Driver仅能连接到部分Executor。


内容的提问来源于stack exchange,提问作者Sara Munafò

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:04:57