有人在 AWS 上玩过 MapReduce 吗?有什么想法吗?执行情况如何?
8 回答
很容易上手。
这是一个常见问题解答: http: //aws.amazon.com/elasticmapreduce/faqs/
这是入门指南:http ://docs.amazonwebservices.com/ElasticMapReduce/latest/GettingStartedGuide/
如果您已经拥有 EC2 账户,则可以使用 AWS 管理控制台启用 MapReduce 并在 10 分钟内启动并运行示例应用程序。
我做了预先打包的 Word Count 示例应用程序,它返回包含在大约 20 MB 文本中的每个单词的计数。您最多可以配置 20 个实例以同时运行,尽管我只使用了 2 个实例,并且作业在大约 3 分钟内完成。
该作业返回一个 300 KB 按字母顺序排列的单词列表以及每个单词在样本语料库中出现的频率。
我真的很喜欢 MapReduce 作业可以用我选择的 Perl、Python、Ruby、PHP、C++、R 或 Java 来编写。该过程轻松而直接,并且界面对您的实例状态和工作流程提供了良好的反馈。
请注意,由于 AWS 在创建实例时会按一小时收费,而且 MapReduce 实例会在作业流程结束时自动终止,因此多个快速运行的作业流程的成本可能会迅速增加。
例如,如果我创建一个使用 20 个实例并在 15 分钟内返回结果的作业流,然后再重新运行该作业流 3 次,即使我只有 20 个实例,我仍将按 80 小时的机器时间收费运行1小时。
您还可以使用StarCluster在 AWS 上运行 MapReduce (Hadoop) 。此工具为您配置集群,其优势在于您无需支付额外的 Amazon Elastic MapReduce 价格(如果您想降低成本),您可以使用您的工具创建自己的映像 (AMI)(这可以如果工具的安装不能通过引导脚本完成,那就太好了)。
这非常方便,因为您不必管理自己的集群。您只需按使用付费,因此我认为如果您有一份需要不时运行的工作是个好主意。我们每月只运行一次 Amazon MapReduce,因此对于我们的使用而言,这是值得的。
但是,据我所知,Amazon Map Reduce 的一个缺点是您无法分辨正在运行的操作系统,甚至是其版本。这导致我在运行使用 g++ 4.44 编译的 c++ 代码时出现问题,某些操作系统映像不支持 cUrl 库等。
如果您的用例不需要任何特殊库,我会说去吧。
此外,根据您计划运行的作业类型/持续时间,您可以将AWS Spot 实例与 EMR 结合使用以获得更好的定价。
MB的好答案。
需要明确的是:您可以通过两种方式运行 Hadoop 集群:1) 在 Amazon EC2 实例上运行它。这意味着您必须安装、配置、终止它等。 2) 使用 Elastic MapReduce 或 EMR 运行它:这是在 Amazon Web Services 上运行 Hadoop 集群的一种自动化方式。除了 EC2 的基本成本外,您还需要支付一点额外费用,但您不需要管理任何东西:只需上传数据,然后上传算法,然后进行处理。作业完成后,EMR 将自动关闭实例。
最好的,
西蒙娜
EMR 是使用可用资源的最佳方式,与 EC2 相比增加了很少的成本,但是您将知道它是多么节省时间和容易。云上的大多数 MR 实施都使用这种模型,即 Windows Azure 上的 Apache Hadoop、Mortar Data 等。我曾在 Windows Azure 上使用过 Amazon EMR 和 Apache Hadoop,发现使用起来非常棒。
我正在使用 AWS EMR。它很整洁。我的意思是一旦你启动他们的集群并登录到他们的主节点。您可以使用 hadoop 目录结构。做一些很酷的事情。如果你有一个 edu 帐户,别忘了申请研究资助。他们提供 100 美元的免费积分来使用他们的 AWS。
当您将 S3 存储用于数据时,AWS EMR 是一个不错的选择。它提供与 S3 的开箱即用集成,用于加载文件和发布已处理的文件。在您需要按需运行作业的用例中,您可以从始终运行整个集群的成本中节省下来,这确实可以帮助您节省实例时间。利用上述优势,可以使用 AWS lambda 生成事件驱动的集群。