我正在研究从一些从HBase读取的数据生成CSV文件的mapreduce。有没有办法从映射器写入单个文件而没有减少阶段(或者在作业结束时合并由映射器生成的多个文件)?我知道我可以设置输出格式在作业级别写入文件,是否可以为映射器做类似的事情?
由于
答案 0 :(得分:0)
说真的,这不是MapReduce的工作原理。
为什么你甚至需要一份工作?编写一个简单的Java应用程序,为您执行相同的操作。还有一些命令行工具可以为你做同样的事情。
答案 1 :(得分:0)
在没有减少阶段(example)的情况下,有可能(并非罕见)拥有Map / Reduce-Job。为此,您只需使用job.setNumReduceTasks(0)
。
但是我不确定在这种情况下如何处理Job-Output。通常,每个reducer会得到一个结果文件。如果没有reducer,我可以想象你要么每个映射器得到一个文件,要么你不能产生作业输出。你将不得不尝试/研究它。
如果上述方法不起作用,您仍然可以使用默认的Reducer实现,它只转发映射器输出(标识功能)。