2011-09-23 42 views
1

似乎它在Hadoopreference)支持,但我不知道如何使用它。hadoop:支持Map Reduce作业的多个输出

我想:

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 XML 100k(may be many more)文件做到这一点。欢迎任何更好的建议

任何资源/教程解释如何使用此赞赏。

我使用Python和想学习如何做到这一点使用streaming

谢谢

+0

那么......你的问题是什么?你可以说得更详细点吗? –

+0

如何使用流式API为地图/缩减作业编写多个输出 – daydreamer

回答

0

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

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