What is the purpose of the mapreduce.map.memory.mb parameter?
It sets the amount of memory (in MB) allocated to each map task. Increasing this can help map tasks handle larger data or complex processing.
Click to reveal answer
intermediate
How does mapreduce.reduce.shuffle.parallelcopies affect job performance?
It controls the number of parallel transfers during the shuffle phase for reduce tasks. More parallel copies can speed up data transfer but may increase network load.
Click to reveal answer
beginner
What does the mapreduce.task.io.sort.mb parameter control?
It sets the buffer size (in MB) for sorting map output before it is written to disk. Larger buffers reduce disk I/O but use more memory.
Click to reveal answer
beginner
Why would you adjust mapreduce.reduce.memory.mb in a MapReduce job?
To allocate more memory to reduce tasks, which can help when reduce tasks process large amounts of data or perform complex computations.
Click to reveal answer
intermediate
What is the effect of increasing mapreduce.job.reduces?
It increases the number of reduce tasks. This can speed up the reduce phase by parallelizing work but may increase overhead if set too high.
Click to reveal answer
Which parameter controls the memory allocated to map tasks?
Amapreduce.job.reduces
Bmapreduce.reduce.memory.mb
Cmapreduce.task.io.sort.mb
Dmapreduce.map.memory.mb
✗ Incorrect
mapreduce.map.memory.mb sets memory for map tasks.
What does increasing mapreduce.job.reduces do?
AIncreases map tasks
BIncreases memory for map tasks
CIncreases reduce tasks
DIncreases shuffle parallel copies
✗ Incorrect
mapreduce.job.reduces sets the number of reduce tasks.
Which parameter affects the buffer size for sorting map output?
Amapreduce.task.io.sort.mb
Bmapreduce.reduce.shuffle.parallelcopies
Cmapreduce.map.memory.mb
Dmapreduce.reduce.memory.mb
✗ Incorrect
mapreduce.task.io.sort.mb controls the sort buffer size.
What is the role of mapreduce.reduce.shuffle.parallelcopies?
AMemory for reduce tasks
BParallel data transfers during shuffle
CNumber of map tasks
DBuffer size for map output
✗ Incorrect
It controls parallel transfers in the shuffle phase.
Why increase mapreduce.reduce.memory.mb?
ATo allocate more memory to reduce tasks
BTo increase map tasks
CTo increase shuffle copies
DTo increase sort buffer size
✗ Incorrect
It allocates more memory to reduce tasks for heavy processing.
Explain how tuning mapreduce.task.io.sort.mb and mapreduce.map.memory.mb can improve map task performance.
Think about memory and sorting buffers in map tasks.
You got /4 concepts.
Describe the impact of increasing mapreduce.job.reduces and mapreduce.reduce.shuffle.parallelcopies on reduce phase performance.
Consider parallelism and data transfer in reduce tasks.
You got /4 concepts.
Practice
(1/5)
1. Which MapReduce parameter controls the number of reduce tasks in a job?
easy
A. mapreduce.job.reduces
B. mapreduce.job.maps
C. mapreduce.task.io.sort.mb
D. mapreduce.reduce.shuffle.parallelcopies
Solution
Step 1: Understand the role of reduce tasks
Reduce tasks process the output from map tasks and aggregate results.
Step 2: Identify the parameter controlling reduce tasks
mapreduce.job.reduces sets the number of reduce tasks in a MapReduce job.
Final Answer:
mapreduce.job.reduces -> Option A
Quick Check:
Reduce tasks count = mapreduce.job.reduces [OK]
Hint: Reducers controlled by mapreduce.job.reduces parameter [OK]
Common Mistakes:
Confusing mapreduce.job.maps with reducers
Thinking shuffle parameters control reduce count
Mixing memory parameters with task counts
2. Which of the following is the correct syntax to set the memory allocated to each map task in a Hadoop job configuration?
easy
A. mapreduce.map.memory.mb=2048
B. mapreduce.task.memory.map=2048
C. mapreduce.memory.map.task=2048
D. mapreduce.mapreduce.memory.mb=2048
Solution
Step 1: Recall the standard memory parameter for map tasks
The correct parameter to set map task memory is mapreduce.map.memory.mb.
Step 2: Verify syntax correctness
mapreduce.map.memory.mb=2048 matches the exact syntax used in Hadoop configurations.
4. You have set mapreduce.job.reduces=0 in your job configuration, but your job still runs reduce tasks. What is the likely cause?
medium
A. The job uses a custom partitioner forcing reduce tasks
B. The parameter is overridden by command line or code
C. Reduce tasks run by default regardless of setting
D. Map tasks are mistakenly counted as reduce tasks
Solution
Step 1: Understand effect of mapreduce.job.reduces=0
This setting means no reduce tasks should run.
Step 2: Identify why reduce tasks still run
If reduce tasks run, likely the setting is overridden by command line options or programmatic code.
Final Answer:
The parameter is overridden by command line or code -> Option B
Quick Check:
Overrides cause unexpected reduce tasks [OK]
Hint: Check for overrides if reduce count ignored [OK]
Common Mistakes:
Assuming reduce tasks always run regardless
Confusing map tasks with reduce tasks
Ignoring programmatic overrides
5. You want to optimize a MapReduce job that processes large input data with many small files. Which tuning parameter adjustment can help reduce overhead and improve performance?
hard
A. Increase mapreduce.reduce.shuffle.parallelcopies to 1 to limit network usage
B. Decrease mapreduce.job.reduces to zero to skip reduce phase
C. Set mapreduce.task.io.sort.mb to a very low value to reduce memory use
D. Increase mapreduce.input.fileinputformat.split.maxsize to combine small files into fewer splits
Solution
Step 1: Understand problem with many small files
Many small files cause many small input splits, increasing overhead.
Step 2: Identify tuning to reduce splits
Increasing mapreduce.input.fileinputformat.split.maxsize combines small files into fewer splits, reducing overhead.
Step 3: Evaluate other options
Setting reducers to zero skips reduce phase but may lose aggregation. Low sort memory hurts performance. Limiting shuffle copies to 1 reduces parallelism.
Final Answer:
Increase mapreduce.input.fileinputformat.split.maxsize to combine small files into fewer splits -> Option D
Quick Check:
Combine small files by increasing split max size [OK]
Hint: Combine small files by increasing split max size [OK]