hadoop:支持Map Reduce作业的多个输出

时间:2011-09-23 22:26:47

标签: apache hadoop mapreduce

似乎Hadoopreference)支持它,但我不知道如何使用它。

我想:

a.) Map - Read a huge XML file and load the relevant data and pass on to reduce  
b.) Reduce - write two .sql files for different tables  

为什么我选择map / reduce是因为我必须为驻留ondisk的100k(may be many more) xml文件执行此操作。欢迎任何更好的建议

任何资源/教程解释如何使用它是值得赞赏的。

我正在使用Python并希望了解如何使用streaming

来实现这一目标

谢谢

1 个答案:

答案 0 :(得分:0)

可能不是一个优雅的解决方案,但您可以创建两个模板,以便在作业完成后将reduce任务的输出转换为所需的格式。通过编写一个shell脚本可以实现自动化,该脚本可以查找reduce输出并在其上应用模板。使用shell脚本,转换按顺序进行,并不处理集群中的n台机器。

或者在reduce任务中,您可以将两种输出格式创建为具有一些分隔符的单个文件,然后使用分隔符将它们拆分。在此方法中,由于转换发生在reduce中,因此转换将分布在集群中的所有节点上。