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



似乎在Hadoop(参考)中支持,但我不知道如何使用它。

我想:

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是因为我必须为驻留在磁盘上的100k(may be many more) xml文件这样做。欢迎提出更好的建议

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

我正在使用Python,并希望学习如何使用streaming实现此目标

谢谢

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

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

相关内容

  • 没有找到相关文章