Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS中的Riak Map Reduce返回有限的数据_Javascript_Mapreduce_Riak - Fatal编程技术网

Javascript JS中的Riak Map Reduce返回有限的数据

Javascript JS中的Riak Map Reduce返回有限的数据,javascript,mapreduce,riak,Javascript,Mapreduce,Riak,因此,我在2个EC2服务器上运行Riak,使用python运行javascriptMapreduce。它们已聚集在一起。主要用于“概念证明” bucket中有50个键,map/reduce函数所做的就是重新格式化数据。这仅用于测试Riak中的map/reduce功能 问题:输出仅显示[{u'e':2,u'undefined':2,u'w':2}]。 这是完全错误的。日志显示所有的键都有 “已处理”,但仅返回2个。所以我的问题是为什么会这样 我错过了一些重要的事情 代码: 打印结果: [{u'e'

因此,我在2个
EC2
服务器上运行
Riak
,使用python运行javascript
Mapreduce
。它们已聚集在一起。主要用于“概念证明”

bucket中有50个键,map/reduce函数所做的就是重新格式化数据。这仅用于测试Riak中的map/reduce功能

问题:输出仅显示[{u'e':2,u'undefined':2,u'w':2}]。 这是完全错误的。日志显示所有的键都有 “已处理”,但仅返回2个。所以我的问题是为什么会这样 我错过了一些重要的事情

代码:

打印结果:

[{u'e': 2, u'undefined': 2, u'w': 2}]

这没有任何意义

为了避免在运行reduce阶段之前必须将前一阶段的所有数据加载到协调节点上的内存中(这对于大型mapreduce作业来说是有问题的),reduce功能会运行多次。每个迭代都会从前一个阶段获得一批结果,以及早期reduce阶段迭代的任何输出。默认批量大小为20,但这是。由于一次reduce-phase迭代的结果将作为下一次迭代的输入,因此需要设计reduce-phase函数来处理此问题


通过指定“reduce_phase_only_1”参数,也可以强制Riak对整个输入集只运行一次reduce phase,但通常不建议这样做,尤其是对于大型作业。

日志似乎表明一次只有20个项“reduce”。为什么?谢谢。。。您是否有python和JS中“reduce函数多次运行”的示例。这仍然有点令人困惑。由于reduce phase函数的输入可能包含map phase值和previous reduce phase输出的混合,因此不能假设传入reduce函数的所有值都来自previous map phase,除非输入格式与reduce phase中的输出格式相同,例如,要汇总的数字。否则,在处理之前,您需要查看每个值并确定它是否来自地图pahse。谢谢@christian dahlqvist。是否有实际的代码示例?看到它付诸实践会很有帮助的。非常感谢@christian dahlqvist。我整天都在用reduce函数处理不正确的数据。我的测试用例只使用了20个项目,所以我只看到了生产代码中的错误。
[{u'e': 2, u'undefined': 2, u'w': 2}]