MapReduceBase 和 Mapper 已弃用 [英] MapReduceBase and Mapper deprecated
问题描述
public static class Map extends MapReduceBase implements Mapper
MapReduceBase
、Mapper
和 JobConf
在 Hadoop 0.20.203 中已弃用.
MapReduceBase
, Mapper
and JobConf
are deprecated in Hadoop 0.20.203.
我们现在应该使用什么?
What should we use now?
Edit 1 - 对于 Mapper
和 MapReduceBase
,我发现我们只需要扩展 Mapper
Edit 1 - for the Mapper
and the MapReduceBase
, I found that we just need to extends the Mapper
public static class Map extends Mapper
<LongWritable, Text, Text, IntWritable> {
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map(LongWritable key, Text value,
OutputCollector<Text, IntWritable> output,
Reporter reporter) throws IOException {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
output.collect(word, one);
}
}
}
Edit 2 - 对于 JobConf
我们应该使用这样的配置:
Edit 2 - For JobConf
we should use configuration like this:
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
Job job = new Job(conf);
job.setMapperClass(WordCount.Map.class);
}
编辑 3 - 我根据新 API 找到了一个很好的教程:http://sonerbalkir.blogspot.com/2010/01/new-hadoop-api-020x.html
Edit 3 - I found a good tutorial according to the new API : http://sonerbalkir.blogspot.com/2010/01/new-hadoop-api-020x.html
推荐答案
Javadoc 包含关于这个废弃类的使用信息:
Javadoc contains info what to use instaed of this depraceated classes:
例如http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapred/JobConf.html
Deprecated. Use Configuration instead
当你使用maven并打开类声明(F3)maven可以自动下载源代码,你会看到javadoc注释的内容和解释.
When you use maven and open class declaration (F3) maven can automatically download source code and you'll see content of javadoc comments with explanations.
这篇关于MapReduceBase 和 Mapper 已弃用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!