每次出现时长时间运行的EMR集群与新集群

时间:2018-04-11 12:27:39

标签: apache-spark amazon-emr

我有一个用例来定期(例如,30分钟)在EMR集群上运行Spark作业。决定是为每次运行创建新集群还是使用长时间运行的集群有哪些因素?

如果我们决定长时间运行的群集,有哪些扩展群集的策略?

1 个答案:

答案 0 :(得分:1)

我通常更喜欢独立群集,因为它可以在需要时更轻松地调试和生成测试运行。但是,您可能想要计算两种情况下您需要花多少钱。稍后将更多节点添加到现有集群很容易,所以我不担心。

要了解的事情:

  • 您将支付四舍五入到最接近的分钟
  • EMR群集大约需要10分钟才能启动,这是您支付的时间

你想要考虑的事情:

  • 你的工作实际需要多长时间才能运行。
  • 开始工作会延迟10分钟吗?
  • 如果你的工作是< 20分钟:做独立集群会更便宜
  • 如果你的工作是> 30分钟:在持久性群集中,您的下一个半小时工作将不得不等待
  • 你想隔离你的跑步吗?如果您运行单独的群集,当您阅读日志进行调试时,您不必担心过滤掉不同的作业
  • 如果您使用持久性群集,则可以手动设置任何额外的依赖项,因为您只需要执行一次。在新的群集上,您需要编写脚本。

费用将基于您为群集选择的EC2实例类型以及您决定拥有的节点数。计算估算值的简便方法是使用AWS的成本计算器:

https://calculator.s3.amazonaws.com/index.html

对于您的情况,它取决于您的火花作业运行多长时间。您以一分钟为增量为群集付费,因此如果您的工作只需要几分钟就可以运行,那么每次创建新群集会更便宜。要记住的另一件事是它通常需要大约10分钟或EMR集群才能启动,这是您付费的时间,所以即使您的工作只需要5分钟就可以支付