GCP Dataproc-不一致的容器指标-YARN UI与Spark UI

时间:2018-10-25 06:36:33

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

我有一个具有50个工作程序的GCP Dataproc集群(n1-standard-16 16 VCores 64 GB RAM)。

群集具有带有默认资源计算器的Capacity Scheduler。

我的Spark作业具有以下配置

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

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

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

有人可以帮助我理解这一点吗?

Spark UI YARN UI

1 个答案:

答案 0 :(得分:2)

已知YARN报告的vCore编号不正确;这是与Spark配合使用时与容量调度器有关的已知问题,但仅是一个外观问题,因为它在Dataproc中按预期工作,因此仅偏爱基于内存的bin打包,并在需要时允许vCore的超额订购-IO工作。即使YARN配置为在装箱中包括内核,它也不会提供CPU隔离。 Spark UI中报告的每个执行者核心数是值得信任的正确数。

请参阅以下相关的StackOverflow答案:Dataproc set number of vcores per executor container