我有一个由 Terraform 创建的 EMR 集群。这是自动缩放策略:
resource "aws_emr_managed_scaling_policy" "my_aws_emr_managed_scaling_policy" {
cluster_id = var.amazon_emr_cluster_id
compute_limits {
unit_type = "InstanceFleetUnits"
minimum_capacity_units = 2
maximum_capacity_units = 10
maximum_ondemand_capacity_units = 2
maximum_core_capacity_units = 1
}
}
当我检查 EMR UI 时,您可以看到一切看起来都正确。
最初我得到了预期的这些:
但是,在运行大约 18 小时后,集群会自动扩展到
但是我确实将
maximum_ondemand_capacity_units
设置为 2。您也可以从 EMR UI 看到
要将主节点配置为使用按需定价,并将集群中的其他节点配置为使用现货定价,请将此值设置为 1。要配置整个集群以使用按需定价,请使用与最大集群大小相同的值.
根据我的设置,我预计会有 1 个主要按需实例和 1 个核心按需实例,其余 1 ~ 8 个任务实例将是现货实例。
如何使 EMR 集群自动扩展以利用按需实例,同时保持在最大限制内?就我而言,这将是
因此按需实例只有 2 个。
谢谢!
尝试将
MaximumOnDemandCapacityUnits
和 MaximumCoreCapacityUnits
都设置为 1
。我的猜测是,与 UI 所说的相反,MaximumOnDemandCapacityUnits
不计算主舰队实例。
该猜测基于以下事实:EMR Managed Scaling 仅调整核心和任务队列的大小以及文档中某些参数的描述。请参阅下面ComputeLimits页面的相关报价;重点是我的。
最小容量单位
Amazon EC2 单元的下限。对于实例组,它通过 vCPU 核心或实例进行衡量;对于实例队列,它通过单位进行衡量。托管扩展活动不允许超出此边界。 该限制仅适用于核心节点和任务节点。主节点初始配置后无法扩容
此外,您的场景包含在第 5 页了解节点分配策略和场景中,建议相同的配置。
场景5:扩展核心节点上的按需实例和任务节点上的Spot实例
要扩展核心节点上的按需实例和任务节点上的竞价型实例,托管扩展参数必须满足以下要求:
- 按需限制必须等于最大核心节点数。
- 按需限制和最大核心节点都必须小于最大边界。