如何在地图中对数据进行排序减少hadoop?

时间:2013-05-06 15:49:16

标签: sorting hadoop mapreduce

我正在使用一个包含4个MapReduce步骤的程序。我的第一步输出是:

id      value
 1        20
 2         3
 3         9
 4        36

我有大约1,000,000个ID,在第二步中我必须对值进行排序。此步骤的输出:

 id      value
 4        36
 1        20
 3         9
 2         3

如何在地图中对数据进行排序?我需要使用terasort吗?如果是,我如何在程序的第二步中使用terasort? 感谢。

1 个答案:

答案 0 :(得分:1)

如果您想根据value's排序,请将其设为key in map。即。

id      value
1        20
2         3
3         9
4        36
5         3
地图功能中的

(值)(键)

output will be 

key      value
3         5
3         2
9         3
20        1
36        4

map<value, id> output key/value  
reduce <value, id>

如果你想让id在第一列,这将有效。

context.write(value,key);

请注意,id不会被排序