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

AWS中YARN为Spark分配容器疑问:核心数超配问题

Spark UI与YARN资源显示矛盾的原因解析
  • Spark UI展示的是资源请求值,而非实际分配值
    Spark UI中显示的每个Executor核数、总核数,是你通过--executor-cores=5、--num-executors=6配置的资源请求参数,不是YARN实际分配给容器的资源。YARN的ResourceManager会严格根据集群可用资源调度,不可能分配超过集群总vCore的容器,所以你看到的25核只是作业声明的需求,不是实际运行的资源。

  • 集群资源不足以支撑配置的请求
    你的EMR集群主节点是m5.xlarge(4vCore),核心节点是c5.2xlarge(8vCore),总可用vCore约12(需扣除YARN守护进程占用的少量资源)。你配置的6个Executor(含Driver)每个5核,总请求25核,远超集群可用资源。此时YARN只会分配当前能提供的最大资源,剩余Executor会处于Pending状态,但Spark UI会把所有配置的Executor(包括Pending的)都列出,导致总核数看起来远超集群。

  • Spark UI与YARN历史服务器的统计维度差异
    Hadoop历史服务器统计的是实际运行的容器资源,即YARN成功调度并运行的容器的核数和内存;而Spark UI统计的是作业提交时的资源请求声明,两者统计逻辑完全不同,因此数值出现矛盾。

  • 验证真实资源分配的方法
    访问EMR主节点的YARN ResourceManager UI(默认端口8088),找到该Spark作业的详情页,查看实际分配的容器数量、每个容器的核数和内存,就能看到真实状态:要么部分Executor处于Pending,要么每个Executor实际分配的核数远小于配置的5核。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:45:59