hadoop 0.20.203的MapFileOutputFormat

hadoop 0.20.203的MapFileOutputFormat,hadoop,Hadoop,我有一个hadoop作业,我想将其输出到MapFile,但我必须在运行hadoop 0.20.203的集群上运行,该集群没有MapFileOutputFormat。有没有办法将SequenceFileOutputFormat(我相信它可能包含多个SequenceFile)的输出并行转换为MapFile(它可能非常大)? 关于ArrayFile(如果键都是整数且相对压缩的话)在0.20.203中。不需要从SequenceFile转换为MapFile 仅供参考,通过打开SequenceFile并使用

我有一个hadoop作业,我想将其输出到MapFile,但我必须在运行hadoop 0.20.203的集群上运行,该集群没有MapFileOutputFormat。有没有办法将SequenceFileOutputFormat(我相信它可能包含多个SequenceFile)的输出并行转换为MapFile(它可能非常大)? 关于ArrayFile(如果键都是整数且相对压缩的话)

在0.20.203中。不需要从SequenceFile转换为MapFile


仅供参考,通过打开SequenceFile并使用将为SequenceFile创建索引的,可以将SequenceFile转换为MapFile。其前身是SequenceFile的内容应该被排序,可以为此创建一个MR作业。中的MapFileFixer.java有示例代码。

是的,但它扩展了旧样式的org.apache.hadoop.mapred.FileOutputFormat,它不兼容。OP中没有提到旧/新的MR API。顺便说一句,您使用的新MR API的哪些功能是旧MR API中没有的?除非有特定的要求,否则使用旧API进行移植应该不会太困难。或者在后备箱里有新的MR API。您可以尝试使用该代码构建Hadoop。我的意思是Job.setOutputFormatClass接受ClassYes类型的参数,我知道您来自何处-然后将旧的MR API(o.a.h.mapred包)与o.a.h.mapred.JobConf类一起使用,除非您使用的是新API(o.a.h.mapreduce包)中的某些功能我不认为你是,或者写一个新的MapFileOutputFormat,正如我在前面的评论中提到的。记住,混搭是行不通的:)