alo*_*loo 6 java parallel-processing google-app-engine mapreduce
我正在尝试计算我的java appengine应用程序每天的唯一身份用户数.我已决定使用mapreduce框架(mapreduce.appspot.com)进行java appengine离线执行此计算.我已经设法创建了一个map reduce工作,它遍历我所有代表单个用户会话事件的实体.我也可以使用一个简单的计数器.我有几个问题:
1)我如何只为每个用户ID增加一次计数器?我目前正在映射包含用户ID属性的实体,但许多这些实体可能包含相同的用户ID,所以我如何只计算一次?
2)一旦我将这些作业的结果存储在这些计数器中 - 我如何将它们保存到数据存储区?我在mapreduce的状态页面上看到了计数器的结果,但我希望这些结果自动保存到数据存储区.
想法?
我还没有实际使用过 MapReduce 功能,但我的理论理解是,您可以从映射器内将内容写入数据存储区。您可以创建一个名为 UniqueCount 之类的实体类型,并在每次映射器看到以前从未见过的 ID 时插入一个实体。然后你就可以计算你有多少个唯一的ID。事实上,每次发现新的唯一实体时,您只需更新计数器即可。您可能需要搜索“分片计数器”以获取有关在数据存储中创建可处理高吞吐量的计数器的提示。
最终,当他们完成Reduce 功能时,我想整个任务将变得相当微不足道。
| 归档时间: |
|
| 查看次数: |
1284 次 |
| 最近记录: |