阿里云 EMR 发布托管弹性伸缩功能,支持自动调整集群大小,最高降本60%
开源大数据平台 E-MapReduce(简称“EMR”)是云原生开源大数据平台,为客户提供简单易集成的Hadoop、Hive、Spark、StarRocks、Flink、Presto等开源大数据计算和存储引擎。
EMR on ECS是指EMR在ECS上运行的方式。EMR on ECS将EMR的大数据处理功能与ECS的容器化部署优势相结合,使得您可以更加灵活地配置和管理EMR集群,从而更好地适应复杂的数据处理和分析场景。
EMR on ECS 支持弹性伸缩,能够根据业务需求和策略自动调整计算能力(即节点数量)。EMR on ECS 近期重磅推出托管弹性伸缩功能,基于 EMR 托管弹性伸缩功能,您可以指定集群的最小和最大计算限制,EMR会持续对与集群上运行的工作负载相关的关键指标进行采样,自动调整集群大小,以获得最佳性能和资源利用率。
用例和优势
在 EMR 托管弹性伸缩发布之前,您必须提前预测工作负载或填写自定义弹性伸缩规则,这些规则取决于对服务框架(例如 Apache Spark 或 Apache Hive)的深入了解。预测工作负载或编写自定义规则比较困难且容易出错。集群资源大小不正确通常会导致稳定性风险,或者资源利用不足及成本超支。
阿里云EMR发布托管弹性伸缩功能后,您只需为集群指定最大和最小的Task节点数,阿里云EMR将自动在范围内调整集群规模,以实现最优性能与面对业务激增,EMR可以在较短时间内自动补充资源,并将新增任务调度至新的节点上在业务高峰过后,自动移除多余的资源,任务平滑的回到原有节点上,提升资源利用率。
为了对比固定集群和托管弹性伸缩集群的资源利用率效果,我们模拟了以下集群和场景:
用例
- 集群设置:
规格 | 数量 | |
master | ecs.r7.4xlarge 16 vCPU 128 GiB | 1 |
core | ecs.g7.xlarge 4 vCPU 16 GiB | 2 |
task | ecs.g7.xlarge 4 vCPU 16 GiB | + 固定集群设置:20 + 托管弹性伸缩集群设置: - 最小Task节点数:0 - 最大Task节点数:20 |
- 场景设置:
场景 | 作业提交持续时间 | 作业提交间隔 | 作业高峰持续时间 |
有时间规律:固定长作业 | 4小时 | 2小时 | 1小时 |
有时间规律:固定短作业 | 2小时 | 15分钟 | 5分钟 |
夜间周期规律+白天随机提交 | 2小时 | 随机 | 5分钟 |
无时间规律 | 随机 | 随机 | 随机 |
- 效果对比:
相比于固定集群配置,托管弹性伸缩在各类场景下都有较大的资源利用率提升。
资源利用率 | 未开启弹性 | 托管伸缩 |
有时间规律:固定长作业 | 44.74% | 87.85% |
有时间规律:固定短作业 | 35.64% | 74.58% |
夜间周期规律+白天随机提交 | 27.08% | 76.19% |
无时间规律 | 39.18% | 84.66% |
以下大盘显示了 EMR 托管弹性伸缩如何根据集群负载调整集群大小,在高峰期扩大集群,在空闲时缩小集群。与固定大小的集群相比,在用例中启用托管弹性伸缩,可将集群成本降低 60%。
优势
相比于自定义伸缩,托管弹性伸缩在性能和配置便捷度上都有较大的提升
配置 EMR 托管扩展
配置 EMR 托管扩展非常简单。只需启用 EMR 托管扩展并设置Task节点数量的最小和最大限制。您可以在正在运行的集群上或在创建集群时启用托管扩展。有关更多信息,请参阅
如何在EMR控制台配置弹性伸缩_开源大数据平台 E-MapReduce(EMR)-阿里云帮助中心
节点分配策略
EMR 托管弹性伸缩让您控制集群可扩展到的最小容量和最大容量。可控制这些容量的参数包括:
- 最大Task节点数
- 最小Task节点数
- 最大按量Task节点数,最大按量Task节点数是用来调节抢占式实例和按量实例的分配
- 仅扩展按量Task节点,最大按量Task节点数=最大Task节点数。
- 仅扩展抢占式实例Task节点,最大按量Task节点数=最小Task节点数。
如果您在使用过程中遇到任何疑问,欢迎扫描下方二维码加入EMR用户钉钉群进行咨询。