Hadoop MapReduce с уже отсортированными файлами - PullRequest
2 голосов
/ 27 июня 2011

Я работаю с Hadoop MapReduce. У меня есть данные в HDFS, и данные в каждом файле уже отсортированы. Можно ли заставить MapReduce не прибегать к данным после фазы карты? Я попытался изменить map.sort.class на no-op, но это не сработало (то есть данные были отсортированы не так, как я ожидал). Кто-нибудь пробовал делать что-то подобное и сумел этого добиться?

1 Ответ

0 голосов
/ 09 декабря 2011

Я думаю, это зависит от того, какой стиль результата вы хотите, отсортированный результат или несортированный результат?

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

  • ВХОДНЫЕ ДАННЫЕ будут храниться в разных блоках (если они достаточно большие) и разбиты на несколько разделений. Каждое разделение будет сопоставлено одной задаче карты, и весь вывод задач карты будет собран (после процессов разделения / сортировки / объединения / копирования / слияния) в качестве входных данных сокращения. На этих этапах сложно держать ключи в порядке.
  • Функция сортировки существует не только после обработки карты в задаче карты. Когда выполняется процесс слияния во время задачи сокращения, также есть опция сортировки.

Если вам не нужно сортировать результат, я думаю, этот патч может быть тем, что вы хотите:

Поддержка отсутствия сортировки потока данных в выводе карты и сокращение фразы слияния: https://issues.apache.org/jira/browse/MAPREDUCE-3397

...