减速机中的多输出

时间:2012-02-19 20:25:40

标签: hadoop mapreduce

我正在制作简单的地图缩减程序。我想在reducer中为键中的每个不同单词创建不同的文件。例如,在执行Mapreduce之后,我有类似

的内容

优先级1 x 2

优先级1 y 2

优先级1 z 2

priority2 x 2

priority2 y 2

现在我想在reduce阶段之后想要不同的文件,说Priority1和Priority2根据优先级具有所有这些值。我正在使用java并且想知道在reducer中应该写什么来获得这种输出?

我只是想知道这是否可能,或者是否如何处理或解决这个问题? 我使用的是Hadoop 0.20.203,因此多输出不起作用。

任何指针都会有所帮助。 谢谢您的帮助! 阿图尔

2 个答案:

答案 0 :(得分:0)

查看MultipleOutputs

答案 1 :(得分:0)

您需要先创建一个partioner课程,然后根据您的标准创建该课程。

然后,您需要创建自己的outputformat班级和recordwriter班级。

recordwriter类需要根据您的需要写入不同的文件。此外,如果您需要为您的值排序,请为您的关键字段创建comparator类。