Google cloud platform 纱线GCP Dataproc上的自动缩放度量

Google cloud platform 纱线GCP Dataproc上的自动缩放度量,google-cloud-platform,yarn,autoscaling,google-cloud-dataproc,dataproc,Google Cloud Platform,Yarn,Autoscaling,Google Cloud Dataproc,Dataproc,为什么GCP Dataproc的集群自动缩放使用纱线作为RM,基于内存请求而不是核心?是Dataproc或纱线的限制还是我遗漏了什么 参考: Autoscaling将Hadoop Thread配置为基于纱线内存请求而不是纱线芯请求来调度作业 自动缩放以以下Hadoop纱线指标为中心: 已分配内存是指在整个集群中运行容器所占用的总内存。如果有6个运行的容器可以使用高达1GB的内存,则有6GB的已分配内存 可用内存是群集中未被分配的容器使用的内存。如果所有节点管理器都有10GB的内存和6GB的分配内

为什么GCP Dataproc的集群自动缩放使用纱线作为RM,基于内存请求不是核心?是Dataproc或纱线的限制还是我遗漏了什么

参考:

Autoscaling将Hadoop Thread配置为基于纱线内存请求而不是纱线芯请求来调度作业

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

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

可用内存是群集中未被分配的容器使用的内存。如果所有节点管理器都有10GB的内存和6GB的分配内存,那么就有4GB的可用内存。如果群集中有可用(未使用)内存,则自动缩放可能会从群集中删除辅助进程

Pending memory是挂起容器的内存请求的总和。待处理的容器正在等待空间在纱线中流动。只有当可用内存为零或太小而无法分配给下一个容器时,挂起内存才不是零。如果存在挂起的容器,则自动缩放可能会向集群添加工作进程


这是Dataproc目前的一个限制。默认情况下,Thread根据内存请求查找容器的插槽,并完全忽略核心请求。因此,在默认配置中,Dataproc只需要根据挂起/可用内存自动缩放

在某些用例中,您肯定希望通过运行更多容器来超额订购纱线芯。例如,我们的默认distcp配置可能有8个低内存容器在节点管理器上运行,即使您只有4个物理内核。每个distcp任务都很大程度上受I/O限制,不占用太多内存。因此,我认为保留默认的仅基于内存的调度是合理的

如果您也对基于纱线芯配置自动缩放感兴趣,我怀疑您已经打开了纱线,以使纱线同时在内存和芯上进行调度。在我们的路线图中,支持
DominantResourceCalculator
。但我们一直优先考虑自动缩放稳定性修复。请随时私下联系dataproc-feedback@google.com告诉我们更多关于您的用例的信息