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