hadoop-按键正确排序并按减速机分组

li9yvcax  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(510)

我从减速机中得到了一些数据如下:

9,2    3
5,7    2
2,3    0
1,5    3
6,3    0
4,2    2
7,1    1

我想根据第二栏的数字来排序。这样地:

2,3    0
6,3    0
7,1    1
5,7    2
4,2    2
1,5    3
9,2    3

在本地运行程序时,我使用:

sort -k2,2n

但我不知道如何在hadoop上做同样的事情。我尝试了几个不起作用的选项,例如:

-D mapreduce.partition.keycomparator.options=-k2,2n

而且,我希望所有具有相同密钥的数据都放在同一个减速机上。所以在这种情况下:

2,3   0

6,3   0

应采用相同的减速机加工。
有没有关于hadoop的建议?
提前谢谢!

toiithl6

toiithl61#

在作业的默认配置中,第一列是result from reducer的键,第二列是值。为了产生结果,reducer使用相同的键处理所有记录。因此,在您的情况下,您需要运行一个额外的mapreduce作业。Map将第二列作为键,第一列作为值。此作业将根据您的请求对数据进行分组。但是,如果您的数据量很小,那么每个作业只能设置一个reducer—d mapred.reduce.tasks=1。

相关问题