似乎在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中,因此转换分布在集群中的所有节点上。