当前位置:  开发笔记 > 编程语言 > 正文

地图的状态 - 减少Appengine?

如何解决《地图的状态-减少Appengine?》经验,为你挑选了1个好方法。

有一个appengine-mapreduce似乎是在AppEngine上做事的官方方式.但除了一些黑客攻击的Wiki页面和冗长的视频之外,似乎没有文档.有声明lib只支持该map步骤.但是消息来源表明还有shuffle的实现.

此appengine-mapreduce库的一个版本似乎也包含在SDK中,但它不受公众使用的祝福.因此,您基本上需要将库加载到运行时两次.

然后是appengine-pipeline."API的主要用例是将各种App Engine MapReduces连接到计算管道中." 但是appengine-mapreduce库中似乎还有与管道相关的代码.

那么我从哪里开始了解这一切是如何组合在一起的呢?哪个是我的项目调用的库.除了解析更改日志之外,还有关于appengine-mapreduce的文档吗?



1> Drew Sears..:

哪个是我的项目调用的库.

它们用于不同的目的,并且您没有提供有关您尝试执行的操作的详细信息.

这里最基本的层是任务队列,它允许您安排可以高度并行化的后台工作.这是扇动.假设您有一个包含1000个网站的列表,并且您希望检查每个网站的响应时间,并为任何需要超过5秒钟的网站发送电子邮件.通过将这些作为并发任务运行,您可以比按顺序检查所有1000个站点更快地完成工作.

现在假设你不想为每个慢速网站发送电子邮件,你只想检查所有1000个网站,并发送一封摘要电子邮件,说明有多少花了超过5秒,有多少花了更少.这是粉丝.使用任务队列比较棘手,因为您需要知道所有任务何时完成,并且您需要收集并汇总其结果.

输入Pipeline API.Pipeline API抽象了任务队列,使扇入更容易.您编写的内容看起来像同步,过程代码,但使用Python期货并且并行执行(尽可能多).Pipeline API跟踪任务依赖性并收集结果以便于构建分布式工作流.

MapReduce API包装Pipeline API以促进特定类型的分布式工作流:将一件工作的结果映射到一组键/值对,并通过组合它们的值将多组结果减少为一组.

因此,它们围绕分布式任务执行的通用系统提供了越来越多的抽象和便利.正确的解决方案取决于您要完成的任务.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有