【问题标题】:GCP Dataproc - Inconsistent container metrics - YARN UI vs Spark UIGCP Dataproc - 容器指标不一致 - YARN UI 与 Spark UI
【发布时间】:2019-03-29 16:26:25
【问题描述】:

我有一个 GCP Dataproc 集群,有 50 个工作人员(n1-standard-16 16 VCores 64 GB RAM)。

集群具有带默认资源计算器的容量调度程序。

我的 Spark 作业具有以下配置

  • spark.executor.cores=5
  • spark.executor.memory=18G
  • spark.yarn.executor.memoryOverhead=2G

现在,当我看到 YARN UI 时,它显示每个节点都有 2 个容器运行 1-Vcore 和 20GB RAM,这几乎使它看起来像 spark.executor.cores 不适用。为了交叉检查,我查看了 Spark UI,令我惊讶的是,每个执行程序都显示了 5 个内核。这让我有点困惑。

此外,作业完成时间(26 分钟)也表明这 5 个核心确实是 vcore,而不仅仅是 1 个核心中的 5 个线程(这只是我的理解,我在这里可能完全错了)。

谁能帮我理解这个?

【问题讨论】:

    标签: google-cloud-platform hadoop-yarn google-cloud-dataproc


    【解决方案1】:

    已知 YARN 报告的 vCore 数量不正确;这是与 Spark 一起使用时与容量调度程序相关的一个已知问题,但这只是一个表面问题,因为它在 Dataproc 中按预期工作,只喜欢基于内存的 bin-packing 并允许在需要高容量时超额订阅 vCore -IO 工作。即使 YARN 配置为在 bin-packing 中包含内核,它也不提供 CPU 隔离。 Spark UI 中报告的每个执行程序的核心数是值得信任的。

    查看这个相关的 StackOverflow 答案:Dataproc set number of vcores per executor container

    【讨论】:

    • 我在想 Spark 神奇地在一个 v-core 上运行 5 个任务。谢谢,这帮助我消除了疑惑。
    猜你喜欢
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多