Bird
Raised Fist0
Hadoopdata~10 mins

Shuffle and sort phase in Hadoop - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to start the shuffle and sort phase in a MapReduce job.

Hadoop
job.setPartitionerClass([1]);
Drag options to blanks, or click blank then click option'
AHashPartitioner
BSortPartitioner
CShuffleSortPartitioner
DReducePartitioner
Attempts:
3 left
💡 Hint
Common Mistakes
Using a non-existent partitioner class.
Confusing partitioner with comparator.
2fill in blank
medium

Complete the code to set the sort comparator class for the shuffle and sort phase.

Hadoop
job.setSortComparatorClass([1]);
Drag options to blanks, or click blank then click option'
AShuffleComparator
BWritableComparator
CText.Comparator
DIntWritable.Comparator
Attempts:
3 left
💡 Hint
Common Mistakes
Using a comparator that does not implement RawComparator.
Confusing comparator with partitioner.
3fill in blank
hard

Fix the error in the code that merges sorted map outputs during shuffle.

Hadoop
MergeManager mergeManager = new MergeManager([1], mapOutputs);
Drag options to blanks, or click blank then click option'
Acontext
Bconfiguration
Cjob
Dconf
Attempts:
3 left
💡 Hint
Common Mistakes
Passing job or context instead of configuration.
Using undefined variables.
4fill in blank
hard

Fill both blanks to create a map output key-value pair and add it to the context during shuffle.

Hadoop
context.write(new [1](key), new [2](value));
Drag options to blanks, or click blank then click option'
AText
BIntWritable
CLongWritable
DFloatWritable
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up key and value types.
Using non-writable types.
5fill in blank
hard

Fill all three blanks to define a custom comparator for sorting keys in shuffle and sort phase.

Hadoop
public class CustomKeyComparator extends WritableComparator {
    protected CustomKeyComparator() {
        super([1].class, true);
    }

    @Override
    public int compare(WritableComparable w1, WritableComparable w2) {
        [2] key1 = ([3]) w1;
        [2] key2 = ([3]) w2;
        return key1.compareTo(key2);
    }
}
Drag options to blanks, or click blank then click option'
AText
CWritableComparable
DIntWritable
Attempts:
3 left
💡 Hint
Common Mistakes
Using different types in constructor and cast.
Casting to non-writable types.

Practice

(1/5)
1. What is the main purpose of the shuffle and sort phase in Hadoop MapReduce?
easy
A. To execute the map tasks in parallel
B. To group and sort mapper outputs by key before reducing
C. To write the final output to HDFS
D. To compress the input data before processing

Solution

  1. Step 1: Understand the role of shuffle and sort

    The shuffle and sort phase happens after map tasks and before reduce tasks. It groups all values by their keys.
  2. Step 2: Identify the purpose of grouping and sorting

    This grouping and sorting prepares data so reducers can easily aggregate values for each key.
  3. Final Answer:

    To group and sort mapper outputs by key before reducing -> Option B
  4. Quick Check:

    Shuffle and sort = group and sort by key [OK]
Hint: Shuffle and sort groups keys before reduce phase [OK]
Common Mistakes:
  • Confusing shuffle and sort with map execution
  • Thinking shuffle compresses data
  • Assuming shuffle writes final output
2. Which of the following is the correct description of the shuffle and sort phase syntax in Hadoop MapReduce?
easy
A. It is an automatic process between map and reduce phases
B. It is handled by the input format class
C. It requires a separate MapReduce job to run
D. It is explicitly coded by the user in the reducer function

Solution

  1. Step 1: Identify where shuffle and sort happens

    Shuffle and sort is not written by the user; it happens automatically between map and reduce phases.
  2. Step 2: Understand the role of input format and user code

    Input format handles reading data, user writes map and reduce, but shuffle and sort is automatic.
  3. Final Answer:

    It is an automatic process between map and reduce phases -> Option A
  4. Quick Check:

    Shuffle and sort = automatic between map and reduce [OK]
Hint: Shuffle and sort runs automatically, no user code needed [OK]
Common Mistakes:
  • Thinking shuffle and sort is user-coded
  • Confusing input format with shuffle
  • Believing shuffle needs separate job
3. Consider the following mapper output key-value pairs:
("apple", 3), ("banana", 2), ("apple", 1), ("banana", 4), ("cherry", 5)

What will be the grouped and sorted output after the shuffle and sort phase?
medium
A. [('banana', [2, 4]), ('apple', [3, 1]), ('cherry', [5])]
B. [('apple', [1, 3]), ('banana', [2, 4]), ('cherry', [5])]
C. [('apple', [3, 1]), ('banana', [2, 4]), ('cherry', [5])]
D. [('apple', [3]), ('banana', [2]), ('cherry', [5])]

Solution

  1. Step 1: Group values by keys

    Group all values with the same key: 'apple' has 3 and 1, 'banana' has 2 and 4, 'cherry' has 5.
  2. Step 2: Sort keys and keep values in original order

    Keys are sorted alphabetically: apple, banana, cherry. Values remain in the order they appeared from mappers.
  3. Final Answer:

    [('apple', [3, 1]), ('banana', [2, 4]), ('cherry', [5])] -> Option C
  4. Quick Check:

    Group by key, sort keys alphabetically [OK]
Hint: Shuffle groups by key; sort orders keys alphabetically [OK]
Common Mistakes:
  • Sorting values instead of keys
  • Mixing order of keys
  • Dropping duplicate values
4. You wrote a MapReduce job but the reducer receives unsorted keys. What is the most likely cause related to the shuffle and sort phase?
medium
A. The shuffle and sort phase was disabled by configuration
B. The partitioner is not implemented correctly
C. The mapper output keys are not serializable
D. The reducer code is missing the reduce method

Solution

  1. Step 1: Understand shuffle and sort role

    Shuffle and sort automatically sorts keys before reducer receives them.
  2. Step 2: Identify why keys might be unsorted

    If keys are unsorted, shuffle and sort might be disabled or misconfigured in job settings.
  3. Final Answer:

    The shuffle and sort phase was disabled by configuration -> Option A
  4. Quick Check:

    Disabled shuffle and sort = unsorted keys [OK]
Hint: Check if shuffle and sort is disabled in config [OK]
Common Mistakes:
  • Blaming partitioner for sorting issue
  • Assuming mapper key serialization causes sorting
  • Thinking reducer code missing causes unsorted keys
5. You have a large dataset with many duplicate keys and want to optimize the shuffle and sort phase to reduce network traffic. Which approach should you apply?
hard
A. Write a custom input format to sort data before mapping
B. Disable shuffle and sort to speed up processing
C. Increase the number of reducers to one per key
D. Use a combiner function to aggregate mapper outputs before shuffle

Solution

  1. Step 1: Understand shuffle and sort network cost

    Shuffle sends mapper outputs over network; many duplicates increase traffic.
  2. Step 2: Use combiner to reduce data before shuffle

    Combiner aggregates data locally on mapper nodes, reducing data sent during shuffle.
  3. Final Answer:

    Use a combiner function to aggregate mapper outputs before shuffle -> Option D
  4. Quick Check:

    Combiner reduces shuffle data volume [OK]
Hint: Use combiner to reduce data before shuffle [OK]
Common Mistakes:
  • Disabling shuffle breaks reduce phase
  • Increasing reducers doesn't reduce shuffle traffic
  • Sorting before map doesn't reduce shuffle data
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard