我刚刚开始学习Hadoop,并且有各种格式的输入类型。我有很少的程序要研究,我的主要问题是我如何识别输入格式是TextInputFormat还是KeyValueTextInputFormat或其他任何格式。 非常感谢您的帮助
答案 0 :(得分:1)
您不必识别 MapReduce程序正在使用InputFormat
。
InputFormat
是您可以在程序中明确指定的,MapReduce作业将使用它。
如果您未指定任何内容,则使用TextInputFormat
的默认值FileInputFormat<LongWritable, Key>
扩展Mapper
。这就是为什么在一个简单的wordcount程序中,你经常会看到public class MyMapper extends Mapper<LongWritable, Key, Text, IntWritable> {
//...
}
类被定义为:
JobConf
您可以指定要在JobConf job = new JobConf(new Configuration(), MyJob.class);
job.setInputFormat(SequenceFileInputFormat.class);
job.setOutputFormat(SequenceFileOutputFormat.class);
对象中使用的InputFormat:
{{1}}
链接至:InputFormat.class以供进一步阅读。