我有一个mapreduce作业,其作用是根据给定的标准将输入文件拆分为两个文件。 我目前正在使用Hadoop r0.20.203,因为它是目前的稳定版本 此版本提供两个API:
您可以想象,我正在使用新API ,我的问题是Hadoop r0.20.203在新API中不提供任何MultipleOutput
格式。
Hadoop 0.20.203剧照在旧API 中提供MultipleTextOutputFormat
和MultipleTextOutputs
(这些都适合我的情况)。此外,较新的Hadoop 0.22 在新API中提供MultipleOutputs
。
我看到了解决问题的四种方法:
如果你是我,你会怎么做?
答案 0 :(得分:1)
因为很多代码依赖于它,并且因为新API(如您所发现的)从未完全实现,所以它们可能在未来的Hadoop版本中弃用旧API。我会使用旧的API而不用担心它。
请参阅http://www.cloudera.com/blog/2010/08/what%E2%80%99s-new-in-apache-hadoop-0-21/
答案 1 :(得分:0)
为什么不将源代码放在项目中并使用它?
它应该与r0.20.203兼容,实际上我没有看到旧版本中不应该提供的类。
并没有什么神奇之处,它只是为每个配置的输出(类型和东西)设置了几个记录编写器。我打赌你可以在制定问题的时候自己编写