Hadoop: реализовать интерфейсы из o.a.h.mapred или расширить классы из o.a.h.mapreduce? - PullRequest
1 голос
/ 04 ноября 2011

Я изучаю Hadoop (0.20.205), и я немного растерялся. Какой способ рекомендуется:

A) Реализуйте интерфейсы Mapper и Reducer из org.apache.hadoop.mapred и настройте задание, используя JobConf, как в примере PiEstimator.

B) Расширьте классы Mapper и Reducer с org.apache.hadoop.mapreduce и настройте задание, используя Job, как в примере WordCount.

Какой из них с большей вероятностью устареет в будущем?

Hbase (0.90.4), похоже, предпочитает второй способ, поскольку TableOutputFormat в o.a.h.h.mapred устарело, а TableOutFormat в o.a.h.h.mapreduce - нет. С другой стороны, такие полезные классы, как IdentityMapper или IdentityReducer, существуют только в o.a.h.mapred. В целом, я склоняюсь к версии B.

Какой путь вы бы выбрали и почему? Заранее спасибо.

1 Ответ

2 голосов
/ 04 ноября 2011

o.a.h.mapred - это старый API-интерфейс MR, а o.a.h.mapreduce - это новый API. Различий в функциональности не так много, но новый API легче поддерживать. Пожалуйста, смотрите мой ответ в StackOverflow здесь .

...