【问题标题】:Autoscaling metrics on GCP Dataproc on YARNYARN 上 GCP Dataproc 上的自动缩放指标
【发布时间】:2021-01-06 04:52:46
【问题描述】:

为什么 GCP Dataproc 的集群基于 内存请求NOT 核心使用 YARN 作为 RM 自动扩展?是 Dataproc 或 YARN 的限制还是我遗漏了什么?

参考:https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/autoscaling

自动缩放将 Hadoop YARN 配置为基于 YARN 内存请求而非 YARN 核心请求来调度作业。

自动缩放以以下 Hadoop YARN 指标为中心:

分配的内存是指在整个集群中运行容器所占用的总 YARN 内存。如果有 6 个正在运行的容器最多可以使用 1GB,则分配的内存为 6GB。

可用内存是集群中未被分配容器使用的 YARN 内存。如果所有节点管理器有 10GB 的内存和 6GB 的分配内存,则有 4GB 的可用内存。如果集群中有可用(未使用)内存,自动扩缩可能会从集群中移除工作人员。

待处理内存是待处理容器的 YARN 内存请求的总和。待处理的容器正在等待空间在 YARN 中运行。仅当可用内存为零或太小而无法分配给下一个容器时,挂起的内存才非零。如果有待处理的容器,自动缩放可能会将工作人员添加到集群中。

【问题讨论】:

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


    【解决方案1】:

    目前这是 Dataproc 的限制。默认情况下,YARN 会根据内存请求为容器查找插槽,并完全忽略核心请求。所以在默认配置下,Dataproc 只需要根据 YARN 挂起/可用内存进行自动扩缩即可。

    肯定有您希望通过运行更多容器来超额订阅 YARN 核心的用例。例如,即使您只有 4 个物理内核,我们的默认 distcp 配置也可能在节点管理器上运行 8 个低内存容器。每个 distcp 任务主要受 I/O 限制,不会占用太多内存。所以我认为保留仅基于内存调度的默认设置是合理的。

    如果您也对配置基于 YARN 内核的自动缩放感兴趣,我怀疑您已打开 YARN 的 DominantResourceCalculator 以使 YARN 同时在内存和内核上进行调度。在我们的路线图中支持DominantResourceCalculator。但我们一直优先考虑自动缩放稳定性修复。请随时私下与 dataproc-feedback@google.com 联系,向我们详细介绍您的使用案例。

    【讨论】:

      猜你喜欢
      • 2019-03-29
      • 2021-06-14
      • 2019-05-20
      • 1970-01-01
      • 2020-09-25
      • 2019-06-24
      • 2018-09-08
      • 1970-01-01
      • 2019-07-31
      相关资源
      最近更新 更多