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

EMR Spark UI中Dead/Excluded Executor相关性能问题咨询

Spark动态分配场景下Dead/Excluded Executor相关问题解答

1. Dead和Excluded Executor的定义

Dead Executor

指完全失去连接、无法再接收和执行任务的Executor实例。常见触发原因包括节点硬件故障、Executor进程崩溃、网络中断,或是YARN资源管理器因节点资源不足(如OOM)主动杀死Executor进程。一旦被标记为Dead,Spark会彻底放弃该Executor,不会再向其分配任何任务。

Excluded Executor

指被Spark标记为临时不可用的Executor,通常是因为该Executor上的任务连续多次失败(默认超过4次)。Spark为避免后续任务重复失败,会暂时将其排除在任务分配池之外。与Dead状态不同,Excluded是临时标记,经过配置的超时时间后,Spark会尝试将其重新纳入可用Executor池。

2. 对集群性能的影响

  • 资源浪费:Dead/Excluded Executor占用的CPU、内存资源在未被回收前无法重新分配。尤其是Dead Executor,若YARN未及时回收资源,会直接减少集群可用资源,导致新Executor或任务无法获取足够资源。
  • 任务延迟:Excluded Executor缩小了任务分配范围,剩余可用Executor需承担更多任务,增加任务排队和执行时间;Dead Executor上未完成的任务需要重新调度到其他节点,额外产生调度开销和重复计算。
  • 动态分配波动:大量Dead/Excluded Executor会触发Spark动态分配机制频繁新增Executor,而Executor启动和初始化需要时间,进一步加剧集群资源波动,导致任务执行不稳定。

3. 优化方案

针对Dead Executor的优化

  • 排查节点健康:检查EMR节点的硬件状态(磁盘空间、内存使用率),查看YARN和Spark的系统日志(/var/log/yarn/、/var/log/spark/),定位OOM、进程崩溃、网络故障等问题并修复。
  • 调整资源配置:根据任务实际需求,合理设置spark.executor.memory、spark.executor.cores,同时配置spark.yarn.executor.memoryOverhead预留足够堆外内存,降低OOM导致Executor被杀死的概率。
  • 启用Executor重启:通过spark.yarn.maxAppAttempts配置允许YARN重启失败的Executor,减少Dead Executor的产生。

针对Excluded Executor的优化

  • 调整失败阈值:修改spark.task.maxFailures(默认4)提高任务失败重试次数,避免临时故障导致Executor被标记为Excluded;调整spark.blacklist.timeout(默认300秒)缩短Excluded状态的持续时间,让Executor更快重新可用。
  • 优化任务稳定性:排查任务失败根源,比如数据倾斜、代码逻辑错误、依赖缺失等,从源头减少任务失败次数,降低Executor被Excluded的概率。
  • 谨慎禁用黑名单:若集群环境稳定,仅偶尔出现临时故障,可通过spark.blacklist.enabled=false关闭黑名单机制,但需注意这可能导致任务重复失败,需权衡使用。

动态分配相关优化

  • 限制Executor波动范围:设置spark.dynamicAllocation.minExecutors和spark.dynamicAllocation.maxExecutors,避免Executor数量大幅波动;调整spark.dynamicAllocation.executorIdleTimeout和spark.dynamicAllocation.cachedExecutorIdleTimeout,避免Executor被过早移除或频繁创建。
  • 优化调度触发时机:调整spark.dynamicAllocation.schedulerBacklogTimeout,延长触发新增Executor的等待时间,避免短时间任务积压导致频繁扩容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:30:48