首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Appengine上的Map-Reduce状态?

Appengine上的Map-Reduce状态?
EN

Stack Overflow用户
提问于 2011-12-07 15:30:13
回答 2查看 1.5K关注 0票数 14

在AppEngine上有appengine-mapreduce,这似乎是官方的做法。但除了一些维基页面和冗长的视频之外,似乎没有其他文档。有一些语句指出,库只支持map步骤。但消息来源指出,也有shuffle的实现。

这个appengine-mapreduce库的一个版本似乎也包含在SDK中,但它不适合公开使用。因此,您基本上需要将该库加载到运行时中两次。

然后是appengine-pipeline。“应用程序接口的一个主要用例是将各种应用程序引擎MapReduces连接到一个计算管道中。”但是在appengine-mapreduce库中似乎还有与管道相关的代码。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-08 00:20:14

,这是要从我的项目中调用的库。

它们服务于不同的目的,并且您没有提供关于您试图做什么的详细信息。

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

现在假设你不想为每个速度慢的站点发送一封电子邮件,你只想检查所有1000个站点,并发送一封摘要电子邮件,说明有多少站点花费的时间超过5秒,有多少站点花费的时间更少。这是扇入。使用任务队列则更为棘手,因为您需要知道所有任务何时都已完成,并且需要收集和汇总它们的结果。

进入Pipeline API。Pipeline API抽象化了任务队列,使扇入变得更容易。您编写的代码看起来像是同步的、过程化的代码,但使用的是Python未来,并且(尽可能地)并行执行。Pipeline API跟踪任务相关性并收集结果,以便于构建分布式工作流。

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

因此,它们围绕分布式任务执行的通用系统提供了越来越多的抽象层和便利性。正确的解决方案取决于您试图实现的目标。

票数 12
EN

Stack Overflow用户

发布于 2014-05-31 07:20:12

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8411805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档