我是 MapReduce 新手,希望您对以下任务的最佳 MapReduce 方法提出意见。
我有一个格式为的大文档
1 2 3
2
2 3 4 5
每行都有一个数字列表。我想在任何行中列出每个可能的(对)数字组合。我想要包含每个给定对的行数。
结果会像
element1 element2 occurrences
1 1 1
1 2 1
1 3 1
2 2 3
2 3 2
3 3 2
3 4 1
3 5 1
文档中有大约 2M 行,大约有 150 万个不同的数字。并且将有大约 2.5G 不同的数字对进行统计。
直截了当的伪代码如下:为文档中的每一行调用映射
Map(int lineId, list<int> elements)
{
for each pair of integers in elements
emit(pair, 1)
}
Reduce((int, int) pair, list<int> counts)
{
return sum(counts)
}
但是这种方法需要 2M 的映射器和 2.5G 的减速器。这是一个可行的方法吗?计划在 Azure 上试用 Hadoop。