我正在尝试编写一个示例Map Reduce程序,其Mapper输出如下:
1/1/2012 15:11:46
1/1/2012 19:09:26
1/1/2012 14:01:25
1/1/2012 17:32:26
1/1/2012 17:41:00
1/1/2012 19:35:38
1/1/2012 14:28:10
1/1/2012 15:45:55
我希望我对reducer的输入按键排序,然后按值排序。 默认情况下,Hadoop框架仅按键对映射器输出进行排序。
我想我应该使用Secondary Sort来完成这项任务,但不知道如何使用它。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
高层:
请注意,您所显示的日期值不会按日期排序 - 您希望年份为第一位。
编辑:我发现你可能还需要编写一个分区程序,因为你需要确保那些显然具有不同值(但都在同一天)的密钥被发送到同一个分区。 / p>答案 1 :(得分:0)
拥有自定义Hadoop WritableComparable,如TextPair对示例TEXT PAIR,
如果您想要为不同TIME的相同日期分配不同的Reducer,请使用自定义分区程序,该分区程序将根据单独日期进行分区