按需AWS EMR集群的自动化 - 通过AWS CLI使用Python(boto3)

时间:2018-01-19 23:37:53

标签: amazon-web-services command-line-interface boto3 emr

我们正在自动启动随需应变的EMR集群。这将在AWS S3中的某些文件到达时触发。在这方面,我们正在评估两个选择 - 1. Shell脚本,它将调用AWS CLI以启动所需的EMR集群 2.将调用EMR启动方法的Python脚本,停止使用boto3

是否有偏好使用一个选项而不是另一个? 前者看起来更容易,因为我们可以从AWS控制台手动创建的EMR中获取CLI并将其打包到shell脚本中。虽然后面的选项有复杂性,但没有这样的起点,而且必须从头开始编写方法。

感谢您在这方面的投入。

1 个答案:

答案 0 :(得分:1)

虽然两者都能达到你想要的效果,但我建议你选择Lambda(Python)。

在预期数据的S3位置创建一个事件触发器 - 这将调用您的lambda(python代码),lambda可以反过来启动您的EMR。

s3-> lambda -> EMR

另一种选择可能是从lambda触发一个数据管道,它将为你创建EMR。

s3 -> lambda -> pipeline -> EMR

使用管道与lambda创建EMR的优点

  • 基于GUI:您可以选择所需的组件,如资源,活动,时间表等。
  • 最小的Python:在lambda中你只需配置要触发的管道,你不需要实现错误处理,重试,成功或失败的电子邮件等。所有这些都是在管道中内置的
  • 灵活:由于管道组件是模块化和可配置的,因此您可以快速更改任何配置。代码更改通常需要更多时间。

您可以在此处阅读更多相关信息 - https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/what-is-datapipeline.html