Чтобы создать задания MapReduce, вы можете использовать старый пакет org.apache.hadoop.mapred
или более новый org.apache.hadoop.mapreduce
пакет для Mappers и Reducers, Jobs... Первый был отмечен как устаревший, но в то же время он был отменен. Теперь я задаюсь вопросом, лучше ли использовать старый пакет mapred или новый пакет mapreduce для создания задания и почему. Или это зависит только от того, нужны ли вам такие вещи, как MultipleTextOutputFormat, который доступен только в старом упакованном пакете?
Лучше ли использовать карту или пакет mapreduce для создания задания Hadoop?
Ответ 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)
-
Существует в пакете org.apache.hadoop.mapreduce
-
Конфигурация заданий выполняется отдельным классом, Called JobConf, который является расширением конфигурации
Класс -
Уменьшает значения для данного ключа на основе Iterable