要创建MapReduce作业,您可以使用旧org.apache.hadoop.mapred
包或org.apache.hadoop.mapreduce
Mapper和Reducers,Jobs ... 的新包.第一个已被标记为已弃用但同时也已恢复.现在我想知道使用旧的mapred包或新的mapreduce包来创建作业以及为什么更好.或者它只取决于您是否需要像旧的mapred包中可用的MultipleTextOutputFormat之类的东西?
Pra*_*ati 43
功能方面,old(o.a.h.mapred
)和new(o.a.h.mapreduce
)API 之间没有太大区别.唯一显着的区别是记录被推送到旧API中的mapper/reducer.虽然新的API支持拉/推机制.您可以在此处获取有关拉动机制的更多信息.
此外,旧的API 自0.21以来一直未被弃用.您可以在此处找到有关新API的更多信息.
正如您所提到的,一些类(如MultipleTextOutputFormat)尚未迁移到新API,由于这个和上述原因,最好坚持使用旧API(尽管翻译通常非常简单).
Har*_*non 14
旧API和新API都很好.新API虽然更干净.尽可能使用新API,并在需要新API中不存在的特定类的地方使用旧API(如MultipleTextOutputFormat
)
但是请注意不要在同一个Mapreduce作业中混合使用旧API和新API.这导致了奇怪的问题.
归档时间: |
|
查看次数: |
15647 次 |
最近记录: |