map reduce jobconf-adding fileinputformat时出错

eit6fx6z  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(359)

我创造了一个 Mapper 使用语法:

public class xyz extends MapReduceBase implements Mapper<LongWritable, Text, Text, Text>{
    -----
    public void map(LongWritable key, Text value,
        OutputCollector<Text, Text> output, Reporter reporter)
    --
}

在作业中,我创建了一个作业对象:

Job job = new Job(getConf());

对于此作业,我无法使用以下方法添加Map器类:

job.setMapper(xyz);

错误消息:

The method setMapperClass(Class<? extends Mapper>) in the type Job is not applicable for the arguments (Class<InvertedIndMap1>)

我不能把Map用在Map上 Mapper 就像我用的 outputCollector 以及 Reportermapper .
在工作中,如果我使用 JobConf 而不是像这样的工作:

JobConf conf = new JobConf(getConf());

那么 conf.setMapper(xyz) 正在工作。
但无法使用以下方法设置输入路径:

FileInputFormat.addInputPaths(conf,new Path(args[0]));

错误消息:

The method addInputPaths(Job, String) in the type FileInputFormat is not applicable for the arguments (JobConf, Path)

我试过了 setInputPaths , setInputpath , addInputPath . 但同样的错误再次出现。同样的错误也发生在 addOutputPath/SetOuputpath .
请为这个问题提出一个解决方案。

bf1o4zei

bf1o4zei1#

您基本上混合了两个导入,mapred(旧的)和mapreduce(新的)

eqqqjvef

eqqqjvef2#

我想问题是你们进口的不合适 FileInputFormat . 我想你需要换一个

import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;

具有

import org.apache.hadoop.mapred.FileInputFormat;

相关问题