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

AWS Glue批量执行Spark规则任务时Executor异常问题求助

问题

在AWS Glue中运行Spark任务,流程如下:

  • 客户端定义数百条规则,选择规则并提供输入数据
  • 任务加载数据后逐条执行规则,规则以Python文件形式定义,执行代码如下:
for rule in rules:
    result = importlib.import_module(module).handle(glue_context, dataframe, global_params, rule_params)

小批量(10-15条)规则执行正常,但大批量(25-50条)时出现错误。数据集规模:7万行、200列;Glue配置:最大15个DPU,G.1X工作节点类型。

出现的错误包括:

  1. Driver日志提示Executor Lost Failure (executor ID: 1),关联容器超限或网络问题
  2. Executor端报java.lang.StackOverflowError
  3. org.apache.spark.shuffle.FetchFailedException,提示关联远程Executor已宕机

已尝试配置--conf: 'spark.task.cpus=2',可执行更多规则但仍会失败。


排查与优化建议

1. 调整JVM栈与Executor内存配置

针对StackOverflowError,优先解决栈内存不足问题:

  • 添加Glue配置参数,增大JVM线程栈大小:
    --conf spark.executor.extraJavaOptions="-Xss4m"
    
    默认栈大小通常为1m,规则代码若有深层调用或递归,容易触发栈溢出,调高到4m可缓解该问题。
  • 调整Executor堆内存,G.1X节点每个DPU对应1个Executor,默认内存可能不足以支撑多规则连续执行:
    --conf spark.executor.memory=8g
    --conf spark.executor.memoryOverhead=2g
    
    (G.1X每个Executor默认4g内存,可根据规则复杂度适当调整)

2. 优化Shuffle相关配置

针对FetchFailedException,解决Executor间 shuffle 数据传输故障:

  • 调整shuffle分区数,避免单分区数据量过大导致传输超时:
    --conf spark.sql.shuffle.partitions=200
    
    可根据数据量在100-400区间内微调。
  • 增加shuffle重试次数与超时时间:
    --conf spark.shuffle.fetch.retryInterval=5s
    --conf spark.shuffle.io.maxRetries=10
    --conf spark.locality.wait=3s
    
    降低因网络波动导致的shuffle失败概率。

3. 调整任务资源分配与并行策略

  • 取消spark.task.cpus=2的强制配置,改为spark.task.cpus=1:G.1X节点有4vCPU,单任务占1核可让节点同时运行更多任务,提升并行效率,避免单个任务占用过多资源导致容器被kill。
  • 分批次执行规则,每执行完一批(比如20条)主动清理Spark缓存:
    from pyspark.sql import SparkSession
    spark = SparkSession.builder.getOrCreate()
    # 每批规则执行完毕后清理缓存
    spark.catalog.clearCache()
    
    避免中间DataFrame累积占用过多内存。

4. 检查规则代码逻辑

  • 排查每条规则的handle方法是否存在递归调用、内存泄漏(比如未释放的全局变量、大量冗余DataFrame)
  • 检查是否有规则频繁触发宽依赖操作(如join、groupBy),这类操作会引发大量shuffle,极易导致Executor负载过高。

5. 调整Glue集群配置

  • 将最大DPU从15调高到20-25,开启Glue自动缩放,避免资源耗尽导致Executor被强制销毁。
  • 检查VPC安全组与网络配置,确保Driver与Executor之间网络连通性良好,无带宽瓶颈或端口限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:40:43