Подтвердить что ты не робот

Лучше ли использовать карту или пакет mapreduce для создания задания Hadoop?

Чтобы создать задания MapReduce, вы можете использовать старый пакет org.apache.hadoop.mapred или более новый org.apache.hadoop.mapreduce пакет для Mappers и Reducers, Jobs... Первый был отмечен как устаревший, но в то же время он был отменен. Теперь я задаюсь вопросом, лучше ли использовать старый пакет mapred или новый пакет mapreduce для создания задания и почему. Или это зависит только от того, нужны ли вам такие вещи, как MultipleTextOutputFormat, который доступен только в старом упакованном пакете?

4b9b3361

Ответ 1

Функциональность не имеет большого значения между старым (o.a.h.mapred) и новым (o.a.h.mapreduce) API. Единственное существенное различие заключается в том, что записи переносятся в mapper/reducer в старый API. Хотя новый API поддерживает механизм pull/push. Вы можете получить дополнительную информацию о механизме тяги здесь.

Кроме того, старый API был un-debrecated с 0.21. Вы можете найти дополнительную информацию о новом API здесь.

Как вы уже упоминали, некоторые из классов (например, MultipleTextOutputFormat) не были перенесены в новый API, из-за этого и вышеупомянутой причины лучше придерживаться старого API (хотя перевод обычно довольно прост).

Ответ 2

Оба старых и новых API хороши. Однако новый API чище. Используйте новый API везде, где можете, и используйте старый, где вам нужны конкретные классы, которых нет в новом API (например, MultipleTextOutputFormat)

Но будьте осторожны, чтобы не использовать сочетание старых и новых API в той же работе Mapreduce. Это приводит к странным проблемам.

Ответ 3

Старый API (отображенный)

  • Существует в пакете org.apache.hadoop.mapred

  • Предоставить конфигурацию конфигурации карты/уменьшения.

  • Уменьшает значения для данного ключа на основе Iterator
  • Пакет Summary

Новый API (mapreduce)

  1. Существует в пакете org.apache.hadoop.mapreduce

  2. Конфигурация заданий выполняется отдельным классом, Called JobConf, который является расширением конфигурации
       Класс

  3. Уменьшает значения для данного ключа на основе Iterable

  4. Резюме пакета