【问题标题】:Hadoop: What to use instead of deprecated interfaces Mapper and Reducer?Hadoop:使用什么来代替已弃用的接口 Mapper 和 Reducer?
【发布时间】:2012-10-31 13:45:05
【问题描述】:

我正在使用here 下载的 Hadoop 版本 0.22.0。我开始根据this 教程创建我的自定义映射器和reducer,发现所有映射器类都将实现的接口Mapper<K1, V1, K2, V2> 已弃用。接口Reducer<K2, V2, K3, V3> 应该由所有reducer 实现(至少根据the tutorial)也被弃用了。 MapReduceBaseJobConf 这样的类也是如此。这些都是所有自定义映射器和化简器都需要的核心类和接口,不是吗? javadoc 中没有说明应该使用什么来替代那些已弃用的类。

那么我应该使用哪些接口和类来代替那些已弃用的接口和类?还是我应该使用它们?为什么它们被弃用?请向我解释发生了什么事以及我应该怎么做,因为我不明白。

【问题讨论】:

    标签: java hadoop mapreduce version deprecated


    【解决方案1】:

    org.apache.hadoop.mapred 包中的类来自旧的 MR API,org.apache.hadoop.mapreduce 中的类来自新 API。请注意,所有类都没有从旧 API 移植到新 API。这是来自 SO 的 similar 线程。

    【讨论】:

      【解决方案2】:

      在包org.apache.hadoop.mapreduce 中有一个同名的类(不是接口!)Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT>,应该使用它来代替接口和基类。与 reducer 相同:在包 org.apache.hadoop.mapreduce 中有一个类 Reducer<KEYIN, VALUEIN, KEYOUT, VALUEOUT>

      我仍然不知道如何处理 JobConf 等,但我会在发现后更新我的答案。


      编辑:将使用类 Configuration 代替 JobConf

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-10
        • 1970-01-01
        相关资源
        最近更新 更多