在Hadoop流中生成单独的输出文件
答
使用流时,可以替换outputFormatClass吗? 在原生Java实现中,您将扩展MultipleTextOutputFormat类并修改命名输出文件的方法。然后使用JobConf的setOutputFormat方法将您的实现定义为新的输出格式
您应该验证是否可以在流中使用。我不知道: -/
答
可以使用-inputformat和-outputformat命令行参数来替换input和outputformat类。
如何做到这一点的一个例子可以在dumbo project中找到,它是一个用于编写流式作业的Python框架。它具有写入多个文件的功能,并在内部使用其姐妹项目feathers - fm.last.feathers.output.MultipleTextFiles中的类替换输出格式。
然后reducer需要发出一个元组作为键,元组的第一个组件是指向具有键/值对的文件应写入的目录的路径。可能仍然有多个文件,这取决于reducer和应用程序的数量。
我推荐查看dumbo,它具有许多功能,可以更容易在Python中的Hadoop上编写Map/Reduce程序。
在写入本地文件系统或hdfs时,同时写入同一文件的多个映射器如何处理? – 2011-10-11 00:58:46
这样做很糟糕。它与重试任务相冲突,并保证你需要照顾你的工作。 – nkadwa 2013-04-22 14:27:50