我有一个多阶段/作业 mapreduce 程序。我的第一个输入必须是 TextInputFormat,最后一个输出必须是 TextOutputFormat。我想要实现的是在第一个 Job 中将格式从 Text 转换为 SequenceFile。像这样:
TextInputFormat
Job1.execute()
SequenceFileOutputFormat
SequenceFileInputFormat
Job2.execute()
SequenceFileOutputFormat
...
SequenceFileInputFormat
JobLast.execute()
TextOutputFormat
在所有示例中,我发现这是通过创建一个额外的作业来实现的,该作业只是将输入写入为 SequenceFile,另一个读取 SequenceFile 并将其以不同的格式存储。这可以在不使用额外工作的情况下完成吗?我可以做这样的事情:
conf.setInputFormat(TextInputFormat.class);
conf.setOutputFormat(SequenceFileOutputFormat.class);
虽然作业实际上正在执行其计算。我如何在不创建两个额外的作业(写入和读取)的情况下实现这一点。
问题解决了,我的代码错误,对此感到抱歉。