1

我正在使用简单 MapReduce 操作的 Qizmt 运行本地单系统测试。在“地图”阶段结束时,我打电话给:

output.Add(rKey, rValue);

这被称为一百万次,键是 1,2,3,4,5,6 等 - 每个都是唯一的(毕竟我只是在测试)。我已经检查过这是否按预期发生。这是。该函数被调用一百万次,并且输入的值是正确的。

令我惊讶的是,仅在“Reduce”阶段,实际上收到了大约一百个键(也就是说,“Reduce”函数只被调用了一百次左右)。这些键似乎几乎是从映射为以下模式的列表中任意选择的:0、383、766、2858、3241、5716 等。

使其通过“减少”的一组键是一致的。IE。每次运行任务时,我都会得到 0、383、766 等。但是,如果我在集群中添加第二个系统,则通过的密钥集将完全改变!

'Map' 和 'Reduce' 之间的阶段对我来说有点神秘 - 我真的不确定该去哪里看,因为我的 Map 函数的行为似乎完全符合预期(也就是说,调用 'output' 一百万次)。有没有更多的并行处理经验的人知道我应该在哪里寻找,或者任何可能导致这种行为的东西?

4

1 回答 1

0

没有解决。最终用另一种语言编写了项目,并没有遇到同样的问题。无论如何,Qizmt 似乎根本没有更新。

于 2012-08-17T08:00:22.000 回答