AWS Big Data Blog
Reduce Amazon EMR cluster costs by up to 19% with new enhancements in Amazon EMR Managed Scaling
In June 2020, AWS announced the general availability of Amazon EMR Managed Scaling. With EMR Managed Scaling, you specify the minimum and maximum compute limits for your clusters, and Amazon EMR automatically resizes your cluster for optimal performance and resource utilization. EMR Managed Scaling constantly monitors key workload-related metrics and uses an algorithm that optimizes the cluster size for best resource utilization. Given that the feature is completely managed, improvements to the algorithm are immediately realized without needing a version upgrade. Amazon EMR can scale the cluster up during peaks and scale it down gracefully during idle periods, reducing your costs and optimizing cluster capacity for the best performance.
Throughout 2022, we made multiple enhancements to the EMR Managed Scaling algorithm. With these improvements, we observed that for clusters enabled with EMR Managed Scaling, utilization improved by up to 15 percent, and total costs were reduced further by up to 19 percent. Starting mid-December 2022, EMR Managed Scaling enhancements were enabled by default for clusters using Amazon EMR versions 5.34.0 and later and Amazon EMR versions 6.4.0 and later for both new and existing clusters. Further, given that the feature is completely managed, you will get the new optimized Managed Scaling algorithm by default, and no action is needed on your end.
Listed below are some of the key enhancements we enabled for EMR Managed Scaling:
- Improved cluster utilization with targeted scale-down of your EMR cluster
- Reduced costs by preventing scale-down of instances that store intermediate shuffle data using Spark Shuffle data awareness
- Improved cluster utilization and reduce costs with gradual scale-up of your EMR cluster
Customer success stories
How the enhanced EMR Managed Scaling algorithm helped a technology enterprise reduce costs:
To illustrate the cost savings by examples, we looked at an EMR clusters for a technology enterprise, which heavily uses Amazon EMR to process real time billing data between Kafka and S3 using Spark. They run a persistent EMR cluster with EMR version 5.35 and have EMR Managed Scaling turned-on. The following Amazon CloudWatch dashboard shows how starting December 21, the enhanced Managed Scaling algorithm provisioned (total nodes requested) only 70 nodes vs. the previous Managed Scaling algorithm which provisioned 179 nodes for a similar job profile. The lower the number of resources provisioned to run your jobs, the lower the total cost of your EMR cluster.
How the enhanced EMR Managed Scaling algorithm helped an advertising enterprise reduce costs:
We also looked at an EMR cluster for an advertising enterprise, which leverages Amazon EMR for their data analytics strategy and executes their batch ETL jobs using Spark. They run their clusters on EMR version 6.5 and have EMR Managed Scaling turned-on. The following Amazon CloudWatch dashboard shows how starting December 15, the enhanced Managed Scaling algorithm provisioned (total units requested) only 41 nodes vs. the previous Managed Scaling algorithm which provisioned 86 nodes for a similar job profile.
Estimating the cost savings and utilization improvements for your EMR clusters:
Cluster cost savings:
To view estimated cost savings for your EMR cluster with the EMR Managed Scaling enhancements, please follow the steps below:
- Open the CloudWatch metrics console and, under EMR, search by your
ClusterId
. - From the list of metrics available for EMR, select the following two metrics:
- Running capacity – Based on the unit type you specified in your Managed Scaling policy, this will be available as either “TotalUnitsRunning” or “TotalNodesRunning” or “TotalVCPURunning”.
- Capacity requested by Managed Scaling – Based on the unit type you specified in your Managed Scaling policy, this will be available as either “TotalUnitsRequested” or “TotalNodesRequested” or “TotalVCPURequested”.
- Plot both of the metrics to your CloudWatch dashboard.
- Select the time frame as the 3 months between November 2022 and January 2023 to view the improvements with the enhanced Managed Scaling algorithm when compared to the previous Managed Scaling algorithm.
Cluster utilization improvements:
To estimate the improvements in your EMR cluster utilization with the EMR Managed Scaling enhancements, please follow the steps below:
- Open the CloudWatch metrics console and, under EMR, search by your
ClusterId
. - From the list of metrics available for EMR, select the “YARNMemoryAvailablePercentage” metric.
- To derive memory utilized by YARN, add a math expression such as “Add Math → Start with empty expression”
- For the new math expression, set Label=Yarn Utilization and set Details=100-YARNMemoryAvailablePercentage.
- Plot the cluster utilization metric to your CloudWatch dashboard.
- Select the time frame as the 3 months between November 2022 and January 2023 to view the improvements with the enhanced Managed Scaling algorithm when compared to the previous Managed Scaling algorithm.
What’s next
We will continue to tune the Managed Scaling algorithm with every new EMR release and thereby improve the customer experience when scaling clusters with EMR Managed Scaling.
Conclusion
In this post, we provided an overview of the key enhancement we launched in EMR Managed Scaling. With these enhancements, we observed that the cluster utilization improved by up to 15 percent, and cluster cost was reduced by up to 19 percent. Starting mid-December 2022, these enhancements were enabled by default for EMR clusters using Amazon EMR versions 5.34.0 and later, and Amazon EMR versions 6.4.0 and later. Given that EMR Managed Scaling is a completely managed feature, you will get the new, optimized EMR Managed Scaling algorithm by default, and no action is needed from your end.
To learn more and get started with EMR Managed Scaling, visit the EMR Managed Scaling documentation page.
About the Authors
Sushant Majithia is a Principal Product Manager for EMR at Amazon Web Services.
Vishal Vyas is a Senior Software Engineer for EMR at Amazon Web Services.
Matthew Liem is a Senior Solution Architecture Manager at AWS.