Optimize EMR Costs for CPU-Bound Spark Jobs

Answer Correct answer: C — Switch the task node type from general purpose EC2 instances to compute optimized EC2 instances to lower costs for the CPU-bound ETL job.

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?

  1. Increase the maximum number of task nodes for EMR managed scaling to 10.
  2. Change the task node type from general purpose EC2 instances to memory optimized EC2 instances.
  3. Switch the task node type from general purpose Re instances to compute optimized EC2 instances. Correct Answer
  4. Reduce the scaling cooldown period for the provisioned EMR cluster.

Community Votes

C
100%

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)

AgboolaKun 👍 1 Selected: C
C is the correct answer. Here is why: Compute optimized Amazon EC2 instances are less expensive per CPU core than general purpose instances, making them the better choice for workloads that require high processing power, as they prioritize CPU cores over memory, resulting in a lower cost per vCPU compared to general purpose instances.
antun3ra 👍 4 Selected: C
current situation shows that the EMR cluster is reaching maximum CPU usage, but memory usage remains low (under 30%). This indicates that the workload is CPU-bound rather than memory-bound.
Shanmahi 👍 4 Selected: C
Since the ETL job reaches maximum CPU usage but not memory usage, switching from general-purpose instances to compute-optimized instances (such as C5 or C6g instances) can provide better performance per dollar for CPU-bound workloads.

Comments & Corrections

No comments yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

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.

More DEA-C01 FAQ →

Related Analysis

Practice All DEA-C01 Questions

Access 100 questions with complete answers and detailed explanations.

View Full DEA-C01 Practice Test →

← Back to DEA-C01 Study Guide