我正在开发一个简单的map reduce程序。我想为密钥中的每个不同单词创建不同的文件。例如,在执行Mapreduce之后,我有了类似的东西
优先级1 x 2
优先级1 y 2
优先级1 z 2
优先级2 x 2
优先级2 y 2
现在我想要reduce阶段之后的不同文件,比如Priority1和Priority2,它们根据优先级具有所有这些值。我正在使用java,想知道在reducer中应该写什么才能得到这种输出?
我只是想知道这是否可能,或者是如何解决这个问题?我使用的是Hadoop0.20.203,因此多路输出不起作用。
任何指针都会有所帮助。谢谢你的帮助!Atul
您需要首先创建一个partioner
类,该类根据您的标准进行分区。
然后,您需要创建自己的outputformat
类和recordwriter
类。
recordwriter
类,需要根据您的需要写入不同的文件。此外,如果需要对值进行排序,请为键字段创建comparator
类。
看看MultipleOutput。