MapReduce プログラムを作成し、org.apache.hadoop.mapred.* のクラスを使用しています。誰でもこのエラーの原因を教えてもらえますか? 私の CustomInputFormat クラスは InputFormat を拡張し、createRecordReader メソッドをオーバーライドしました。
私の CustomInputFormat の署名は次のとおりです。
class ParagraphInputFormat extends InputFormat {
@Override
public RecordReader createRecordReader(InputSplit arg0,
TaskAttemptContext arg1) throws IOException, InterruptedException {
return new CustomRecordReader();
}
@Override
public List<InputSplit> getSplits(JobContext arg0) throws IOException,
InterruptedException {
// TODO Auto-generated method stub
return null;
}
}
また、CustomRecordReader の署名は class CustomRecordReader extends RecordReader
このクラスを宣言する際に、org.apache.hadoop.mapreduce を使用しました。. org.apache.hadoop.mapred の間で混乱しています。および org.apache.hadoop.mapreduce.*. Eclipse は非推奨のメッセージを表示し続けることがあります。Apache がいくつかのクラスを追加してからそれらを削除してから、以前のクラスを再度追加したと聞きました。そのせいでしょうか。それは私のコードに影響を与えていますか?
JobConf conf = new JobConf(new Configuration(),MyMRJob.class);
conf.setJobName("NameofJob");
conf.setOutputKeyClass(CutomeKeyClass.class); //no error to this line
conf.setOutputValueClass(IntWritable.class);
conf.setMapperClass(MYMap.class);
conf.setCombinerClass(MyReduce.class);
conf.setReducerClass(MyReduce.class);
conf.setInputFormat(CustomInputFormat.class);//ERROR to this line while typing
conf.setOutputFormat(IntWritable.class);
FileInputFormat.setInputPaths(conf, new Path(args[0]));
FileOutputFormat.setOutputPath(conf, new Path(args[1]));
JobClient.runJob(conf);