2016-05-04 37 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擴展映射{

相關問題