0

我正在为一个大学项目使用 Amazons MapReduce Web Service。为了将数据用于 MapReduce,我需要将它们从关系数据库 (AWS RDS) 转储到 S3。MapReduce 完成后,我需要拆分输出文件并将其大块加载到他们自己的 S3 存储桶中。

在 Amazon Web Services 环境中执行此操作的好方法是什么?

最佳情况:除了用于 RDS 和 MapReduce 的实例之外,这是否可以在不使用额外 EC2 实例的情况下完成?

我将 python 用于 mapper 和 reducer 函数,并将 json 说明符用于 MapReduce 作业流。否则我不受语言或技术限制。

4

1 回答 1

2

如果您查看Amazon Elastic MapReduce 开发人员指南,您需要在 S3 中指定输入数据、输出数据、映射器脚本和缩减器脚本的位置,以便创建 MapReduce 作业流。

如果您需要进行一些预处理(例如从数据库中转储 MapReduce 输入文件)或后处理(例如将 MapReduce 输出文件拆分到 S3 中的其他位置),则必须将这些任务与MapReduce 作业流程。

您可以使用该boto来编写那些预处理和后处理脚本。它们可以在 EC2 实例或任何其他可以访问 S3 存储桶的计算机上运行。从 EC2 传输数据可能更便宜、更快,但如果您没有可用的 EC2 实例,您可以在自己的计算机上运行脚本……除非要传输的数据太多!

自动化可以随心所欲:您甚至可以编排生成输入、启动新 MapReduce 作业流、等待作业完成并相应地处理输出的整个过程,以便在适当的配置下,整个过程简化为按下按钮:)

于 2011-01-13T22:39:18.597 回答