我尝试了一个简单的 Map/Reduce 任务Amazon Elastic MapReduce
,只用了 3 分钟即可完成任务。是否可以重复使用同一个实例来运行另一个任务。
即使我刚刚使用该实例 3 分钟亚马逊将收取费用1 hr
,所以我想使用余额 57 分钟来运行其他几个任务。
我尝试了一个简单的 Map/Reduce 任务Amazon Elastic MapReduce
,只用了 3 分钟即可完成任务。是否可以重复使用同一个实例来运行另一个任务。
即使我刚刚使用该实例 3 分钟亚马逊将收取费用1 hr
,所以我想使用余额 57 分钟来运行其他几个任务。
答案是肯定的。
这是使用命令行客户端的方法:
当您创建实例时传递--alive标志,这会告诉 emr 在您的作业运行后保留集群。
然后可以向集群提交更多任务:
elastic-mapreduce --jobflow <job-id> --stream --input <s3dir> --output <s3dir> --mapper <script1> --reducer <script2>
要稍后终止集群,只需运行:
elastic-mapreduce <jobid> --terminate
尝试运行 elastic-mapreduce --help 以查看您可以运行的所有命令。
如果您没有命令行客户端,请在此处获取。
使用:
elastic-mapreduce --jobflow job-id \
--jar s3n://some-path/x.jar \
--step-name "New step name" \
--args ...
您还可以向集群添加非流式步骤。(这样您就不必自己尝试了 ;-) )
http://aws.amazon.com/elasticmapreduce/faqs/#dev-6
问:我可以运行持久的工作流程吗?是的。使用 –alive 标志启动的 Amazon Elastic MapReduce 作业流将继续,直到明确终止。这允许客户按需向工作流程添加步骤。您可能希望使用它来调试您的作业流程逻辑,而不必反复等待作业流程启动。您还可以使用持久作业流来运行长时间运行的数据仓库集群。这可以与在 Hadoop 之上运行的数据仓库和分析包(如 Hive 和 Pig)结合使用。