11

我尝试了一个简单的 Map/Reduce 任务Amazon Elastic MapReduce,只用了 3 分钟即可完成任务。是否可以重复使用同一个实例来运行另一个任务。

即使我刚刚使用该实例 3 分钟亚马逊将收取费用1 hr,所以我想使用余额 57 分钟来运行其他几个任务。

4

3 回答 3

14

答案是肯定的。

这是使用命令行客户端的方法:

当您创建实例时传递--alive标志,这会告诉 emr 在您的作业运行后保留集群。

然后可以向集群提交更多任务:

elastic-mapreduce --jobflow <job-id> --stream --input <s3dir> --output <s3dir> --mapper <script1> --reducer  <script2>

要稍后终止集群,只需运行:

elastic-mapreduce <jobid> --terminate

尝试运行 elastic-mapreduce --help 以查看您可以运行的所有命令。

如果您没有命令行客户端,请在此处获取

于 2011-08-10T19:23:39.623 回答
2

使用:

elastic-mapreduce --jobflow job-id \
    --jar s3n://some-path/x.jar \
    --step-name "New step name" \
    --args ...

您还可以向集群添加非流式步骤。(这样您就不必自己尝试了 ;-) )

于 2011-08-16T11:46:15.450 回答
0

http://aws.amazon.com/elasticmapreduce/faqs/#dev-6

问:我可以运行持久的工作流程吗?是的。使用 –alive 标志启动的 Amazon Elastic MapReduce 作业流将继续,直到明确终止。这允许客户按需向工作流程添加步骤。您可能希望使用它来调试您的作业流程逻辑,而不必反复等待作业流程启动。您还可以使用持久作业流来运行长时间运行的数据仓库集群。这可以与在 Hadoop 之上运行的数据仓库和分析包(如 Hive 和 Pig)结合使用。

于 2011-07-30T00:31:53.490 回答