3

首先,我必须明确表示我是新手,如果我在我的问题中没有使用正确的术语,请原谅我自己。

这是我的场景:

我需要分析大量文本,如推文、评论、邮件等。数据当前在发生时插入到 Amazon RD MySQL 实例中。

后来,我在该数据上使用 RTextTools ( http://www.rtexttools.com/ ) 在本地运行和 R 作业,以输出我想要的结果。在这一点上,重要的是要明确 R 脚本分析数据并将数据写回 MySQL 表中,该表稍后将用于显示它。

我最近遇到的问题是,每次运行该工作大约需要 1 小时,而且我每天至少需要执行 2 次......因此不再可以选择使用本地计算机。

为了寻找替代方案,我开始阅读有关 Amazon Elastic MapReduce 实例的信息,乍一看似乎是我需要的,但从这里开始我的问题和困惑。

  1. 我读到 EMR 的数据应该从 S3 存储桶中提取出来。如果是这种情况,那么我必须开始将我的数据存储到 S3 存储桶中的 JSON 或类似文件中,而不是存储到我的 RDS 实例中,对吗?
  2. 在这一点上,我读到创建 HIVE 表然后使用 RHive 读取数据以便 RTextTools 完成其工作并将结果写回我的 RDS 表是一个好主意,对吗?
  3. 现在是最后一个也是最重要的问题:与使用 R 运行 EC2 实例并在那里运行我的 R 脚本相比,付出所有这些麻烦是否值得,我会减少计算时间吗?

非常感谢您的时间,任何正确方向的提示将不胜感激

4

2 回答 2

1

有趣的是,我想提出一些建议。

  1. 您可以完全将数据存储在 S3 中,但您必须先将数据写入某个文件(txt 等),然后再将其推送到 S3。您不能将原始 JSON 放在 S3 上。您可能会受益于部署在 S3 上的云前端以快速检索数据。您也可以使用 RDS。您必须自己分析性能差异。

  2. 将结果写回 RDS 应该没有任何问题。EMR 基本上创建了两个 EC2 实例,ElasticMapReduce-master 和 ElasticMapReduce-slave,可用于与 RDS 通信。

  3. 看,我认为它值得尝试使用带有 R 的 EC2 实例,但是为了减少计算时间,您可能不得不使用昂贵的 EC2 实例,或者在不同实例之间进行自动缩放和划分任务。就像自己实现整个并行计算逻辑一样,但是在 EMR 的情况下,您自己就得到了 map reduce 的所有这些逻辑。因此,首先您应该尝试使用 EMR,如果它不适合您的,请尝试使用带有 R 的新 EC2 实例。

让我知道进展如何,谢谢。

于 2012-08-18T21:20:07.313 回答
1

您应该考虑尝试 EMR。如果 1 小时窗口是一个约束条件,那么 S3+EMR 非常值得尝试。对于您的处理工作负载类型,您可以通过使用可扩展的按需 hadoop/hive 平台来节省周期。显然,有一些与试用和切换相关的学习、重新平台化和持续的集群管理成本。他们是不平凡的。或者,考虑像 Qubole 这样的服务,它也在 EC2+S3 上运行并提供更高级别(并且可能更容易使用)的抽象。

免责声明:我是 Qubole 的产品经理。

于 2012-08-23T14:09:20.023 回答