【发布时间】:2012-05-25 08:00:04
【问题描述】:
我有一个流式 map-reduce 工作。我有大约 30 个插槽用于处理。最初我得到一个包含 60 条记录的输入文件(字段以制表符分隔),每条记录的第一个字段是一个数字,第一个记录号(第一个字段)是 1,第二个记录号(第一个字段)是 2,依此类推.我想从这些记录中创建 30 个文件用于下一步处理,每个文件包含 2 条记录(均匀分布)。
为此,我将 hadoop 作业的 reducer 数量指定为 30。我预计第一个字段将用作键,我将获得 30 个输出文件,每个输出文件包含 2 条记录。
我确实得到了 30 个输出文件,但并非所有文件都包含相同数量的记录。有些文件甚至是空的(零大小)。任何想法
【问题讨论】:
-
你必须编写自己的分区器,hashpartitioner 并不能保证所有任务的完美分布。
标签: hadoop mapreduce hadoop-streaming