DEA-C01 Data Operations and Support Practice Question
A data engineer is monitoring an AWS Glue ETL job that intermittently fails with 'Container killed by YARN for exceeding memory limits' during a large shuffle stage. The job reads from Amazon S3, performs a groupByKey aggregation, and writes to Amazon S3. The engineer wants to reduce the chance of executor memory exhaustion without changing the source data. (Choose two.)
⚠ Common exam trap
The trap here is attributing an executor memory kill to total job volume rather than to how much data a single shuffle partition must hold.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Replace the groupByKey operation with reduceByKey or aggregateByKey to combine values before the shuffle.
The container kill originates from a single executor holding too much data during the shuffle. Adding workers spreads the shuffle across more containers, reducing per-executor memory demand. Replacing groupByKey with reduceByKey or aggregateByKey introduces map-side combining so far less data crosses the network. Both changes reduce peak memory in the shuffle stage without touching the source data.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Enable the Glue job bookmark to skip previously processed files.
Why it's wrong here
Job bookmarks track which source objects have already been processed so incremental runs skip them. This reduces the total volume read over successive runs, but it does nothing to change how a single run performs its shuffle. The memory failure occurs within the shuffle stage of the current run, so bookmarking does not lower the peak memory consumed by a single aggregation execution.
- ✓
Replace the groupByKey operation with reduceByKey or aggregateByKey to combine values before the shuffle.
Why this is correct
groupByKey shuffles all values for a key before aggregation, which can produce enormous intermediate data. reduceByKey and aggregateByKey perform map-side combiners that pre-aggregate values locally before the shuffle, dramatically shrinking the data moved across the network. Less shuffled data means smaller per-executor memory footprints during the aggregation, addressing the root cause of the container kills.
- ✗
Change the output write format from Parquet to uncompressed JSON.
Why it's wrong here
Switching to uncompressed JSON increases output size and write time and removes columnar benefits for downstream consumers. It has no effect on the shuffle stage where the memory failure occurs, because the shuffle happens before the write. This change would likely worsen performance and cost without addressing the executor memory exhaustion during aggregation.
- ✗
Set the job's max concurrent runs to 1 to avoid overlapping executions.
Why it's wrong here
Limiting concurrent runs prevents multiple executions of the same job from competing for resources. That is useful for controlling cost and avoiding state conflicts, but it does not change the memory characteristics of a single run. The container kill happens inside one execution's shuffle stage, so serializing runs leaves the underlying memory pressure unresolved.
- ✓
Increase the number of workers allocated to the Glue job.
Why this is correct
Adding workers increases the number of executors available, which distributes the shuffle workload across more containers. With more executors, each one handles a smaller partition of the grouped data, lowering the peak memory any single container must hold. This directly reduces the likelihood of a single executor being killed for exceeding its memory limit during the aggregation stage.
Quick reference
AWS S3 Storage Class Comparison
| Storage Class | Min Duration | Retrieval | Use Case |
|---|---|---|---|
| S3 Standard | None | Immediate | Frequently accessed data |
| S3 Standard-IA | 30 days | Immediate | Infrequent access, rapid retrieval |
| S3 One Zone-IA | 30 days | Immediate | Non-critical infrequent data |
| S3 Intelligent-Tiering | None | Immediate–hours | Unknown or changing access patterns |
| S3 Glacier Instant | 90 days | Milliseconds | Archive with instant retrieval |
| S3 Glacier Flexible | 90 days | Minutes–hours | Archive, flexible retrieval |
| S3 Glacier Deep Archive | 180 days | Hours | Long-term compliance archive |
Go deeper
Related to this question
About these practice questions
One of 1,321 original DEA-C01 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Amazon Web Services exam blueprint
This DEA-C01 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DEA-C01 exam.