(1)新的API倾向于使用抽象类,而不是接口。新的API中Mapper和Reducer是抽象类。
(2)新的API在org.apache.hadoop.mapreduce包和子包中,旧版的API放在org.apache.hadoop.mapred中。在编程中一定要注意两个包不要混用或者用错,程序中要正确统一的的import进新包或者旧包。我在刚开始写代码的时候由于没有注意这一点,程序出现过错误,尤其是在刚建map或reduce类以及job的配置时。
(3)新的API中广泛使用context object,例如MapContext基本上充当这JobConf的OutputCollector和Reporter的角色。
(4)新的API同时支持“推”和“拉”式的迭代。
(5)新的API同一了配置。旧API使用JobConf对象进行作业配置,新API中作业配置通过Configuration来完成。
(6)新API中作业控制执行有Job类来负责,旧版使用JobClient。这也是写代码时要注意的地方。
本文详细介绍了Hadoop从0.20.0版本加入的新MapReduceJavaAPI与旧版本API的区别,包括抽象类的使用、包的调整、contextobject的应用、迭代方式、配置方式以及作业执行控制等关键点,并通过实例说明了这些变化的重要性。
950

被折叠的 条评论
为什么被折叠?



