Optimize EMR Costs for CPU-Bound Spark Jobs
A company currently uses a provisioned Amazon EMR cluster that includes general purpose Amazon EC2 instances. The EMR cluster uses EMR managed scaling between one to five task nodes for the company’s long-running Apache Spark extract, transform, and load (ETL) job. The company runs the ETL job every day. When the company runs the ETL job, the EMR cluster quickly scales up to five nodes. The EMR cluster often reaches maximum CPU usage, but the memory usage remains under 30%. The company wants to modify the EMR cluster configuration to reduce the EMR costs to run the daily ETL job. Which solution will meet these requirements MOST cost-effectively?
Community Votes
100% of anonymous learners picked answer C. Votes are pick records left by other test-takers — they are not the verified answer.
Community Insight
The scenario tests the ability to match workload characteristics (CPU-bound vs memory-bound) with specific EC2 instance types to reduce costs without sacrificing performance.
This question addresses cost optimization for Amazon EMR clusters running Apache Spark by identifying the appropriate EC2 instance family based on resource utilization metrics.
Learners often select memory-optimized instances because Spark is memory-intensive, failing to notice that current memory usage is low while CPU is maxed out.
Community Discussion (3 comments)
Comments & Corrections
No comments yet — spotted an error or have a note? Share it below.
Expert Analysis
Why the Answer Is Correct
The problem states that CPU usage is at maximum while memory usage remains under 30%. This indicates a CPU-bound workload rather than a memory-bound one. Switching to compute-optimized instances (like C5 or C6g) provides more vCPUs per dollar compared to general-purpose instances, directly addressing the bottleneck and reducing cost.Why the Other Options Are Wrong
Increasing the node count (A) would increase costs and doesn't address the inefficiency of using expensive general-purpose nodes for a CPU-heavy task. Memory-optimized instances (B) are unnecessary since memory is already underutilized. Reducing the cooldown period (D) affects scaling speed, not the unit cost or efficiency of the instances themselves.Community Comment Notes
Community members correctly identified that high CPU and low memory signal a need for compute power. As antun3ra noted, 'current situation shows that the EMR cluster is reaching maximum CPU usage, but memory usage remains low.' Others emphasized that compute-optimized instances offer better value per CPU core for such workloads.Exam Strategy
Always analyze the 'bottleneck' first. If a resource is maxed out, that is your constraint. If another resource is low, you can likely downsize or switch families to save money. For Spark, check if it's CPU-bound (use Compute Optimized) or Memory-bound (use Memory Optimized).
Frequently Asked Questions
Why not use memory-optimized instances for Spark?
Spark is memory-intensive, but only if memory usage is high. Here, memory is under 30%, so adding more memory is wasteful and costly.
Does increasing nodes help with CPU bottlenecks?
It might help performance, but it increases total cost. The question asks for the MOST cost-effective solution, which involves right-sizing the instance type first.
Related Analysis
Practice All DEA-C01 Questions
Access 100 questions with complete answers and detailed explanations.
View Full DEA-C01 Practice Test →