模块9: 自动化弹性的数据分析平台

Amazon EMR托管扩展–自动调整集群大小以降低成本

Amazon EMR托管扩展是一种备受好评的功能,该功能可自动调整集群大小,以尽可能低的成本获得最佳性能。通过EMR托管扩展,您可以为集群指定最小和最大计算限制,Amazon EMR会自动调整它们的大小以实现最佳性能和资源利用率。 EMR Managed Scaling连续采样与集群上运行的工作负载相关的关键指标。 Amazon EMR 5.30.1及更高版本上的Apache Spark,基于Apache Hive和YARN的工作负载均支持EMR托管扩展。

应用场景和收益

在EMR Managed Scaling之前,您必须预先预测工作负载模式或编写依赖于对应用程序框架(例如Apache Spark或Apache Hive)的深入了解的自定义自动扩展规则。预测工作量或编写自定义规则可能很困难且容易出错。群集资源的大小错误通常会导致SLA丢失或性能无法预测,或者资源利用不足和成本超支。

EMR托管扩展可通过根据工作负载自动调整群集资源的大小来解决此问题,从而实现最佳性能和最低成本。您无需预测工作量模式或编写自定义逻辑即可扩展集群。 EMR托管扩展可根据工作量不断监视关键指标,并优化群集大小以实现最佳资源利用。 Amazon EMR可以在高峰期扩大集群规模,并在闲置期间优雅地缩减集群规模,从而降低成本并优化集群容量以实现最佳性能。只需单击几下,即可设置集群的计算限制,然后由Amazon EMR管理其余部分。借助EMR托管扩展,Amazon EMR还能以1分钟的粒度发出高分辨率指标,使您可以直观地看到Amazon EMR托管扩展对传入工作负载的反应。有关更多信息,请参阅了解托管扩展度量标准。

为了举例说明,我们配置了一个EMR集群,该集群具有EMR Managed Scaling,可在1到20个节点之间扩展,每个节点16 VCPU。我们每隔30分钟将多个并行Spark作业(根据TPC-DS基准)提交给集群。我们将EMR群集设置设置为默认设置,并启用了EMR托管扩展。以下Amazon CloudWatch仪表板显示了EMR托管扩展如何根据群集负载调整群集大小,在峰值期间进行放大以及在空闲时进行缩减。与固定大小的群集相比,在此用例中启用EMR Managed Scaling可将成本降低一半左右。