2016-05-04 39 views
0

只是一个基本的question.I知道映射和减速是Hadoop的版本接口2.但仍编码,当我看到使用扩展映射器或此或延长减速,而不是工具。是有原因的例子由于向后兼容性,它们是否像旧版本一样实施?这里是我一直在研究的链接 https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#MapReduce_-_User_InterfacesMapper和Reducer是Hadoop版本2中的接口?

+0

'org.apache.hadoop.mapreduce *'是你应该Hadoop2使用包,而这些都是没有的接口。 –

回答

1

不知道你在那个页面上看到Mapper和Reducer是MapReduce2的接口,但是该页面上的源代码明确地使用了类。关键字是extends

import org.apache.hadoop.mapreduce.Mapper; 
import org.apache.hadoop.mapreduce.Reducer; 
... 
public static class TokenizerMapper extends Mapper 
... 
public static class IntSumReducer extends Reducer 

应当提及的是,org.apache.hadoop.mapred.Mapperorg.apache.hadoop.mapred.Reducer接口,但这些都意味着用于MapReduce1。

我想重新写映射和减速器作为类的目的是简化类的创建,而不使用extends MapReduceBase implements像这样

class MyReducer<K extends WritableComparable, V extends Writable> 
    extends MapReduceBase implements Reducer<K, V, K, V> 
+0

感谢您的回应cricket_007。 –

+0

您可以使用旁边的复选标记接受答案来显示您的答案 –

0

,我发现这个具有这些API细看时。 org.apache.hadoop.mapreduce 类减速器为Hadoop2其中映射器和减速是类和org.apache.hadoop.mapred接口减速器在那里Hadoop中1他们在那里其在Hadoop的2编译作为接口好。这只是旧的API,并支持向后兼容性

0

是-Mapper和减速是在HADOOP-1X类新之间的差异,并已得到增强,界面后HADOOP -2x版本

例 - CODE:

在Hadoop中的先前版本

公共静态类New_Map扩展MapReduceBase实现映射{

在HADOOP-2X

公共静态类New_Map扩展映射{

相关问题