Где производится сортировка в MapReduce Job? - PullRequest
0 голосов
/ 25 мая 2018

Где производится сортировка в Hadoop Mapreduce Jobs, когда мы пишем программу?Я испытываю трудности в продвижении вперед в моей программе.

1 Ответ

0 голосов
/ 25 мая 2018

Сортировка выполняется структурой Hadoop MapReduce.Мапперы выводят промежуточные пары (ключ, значение), которые передаются редукторам.Каждый редуктор получает все ключи в отсортированном порядке.

Иллюстрация :

Скажем, используются 2 картографа:

-- mapper1 output
key_a, value_a1
key_b, value_b2
key_c, value_c1
key_d, value_d2

-- mapper2 output
key_a, value_a2
key_b, value_b1
key_d, value_d1
key_d, value_d3

Сортировка и перемешивание (шаг сделанHadoop

Скажем, используются 2 редуктора:

--- reducer1 input (sorted by keys)
key_a, [value_a1, value_a2]
key_d, [value_d2, value_d1, value_d3]

--- reducer2 input (sorted by keys)
key_b, [value_b2, value_b1]
key_c, [value_c1]

Если вы хотите обеспечить глобальное упорядочение между переданными ключамидля редукторов вы можете использовать Total Order Partitioner .В этом случае каждый редуктор получит входные данные, как показано ниже:

-- reducer1 input (sorted by keys - global)
key_a, [value_a1, value_a2]
key_b, [value_b2, value_b1]

-- reducer2 input (sorted by keys - global)
key_c, [value_c1]
key_d, [value_d2, value_d1, value_d3]
...