使用ShellCommandActivity

时间:2018-05-14 21:59:08

标签: amazon-web-services amazon-emr amazon-data-pipeline

当我创建AWS EMR时,我可以通过AWS Management Console上的简单向导完成此操作。一旦完成,我可以测试它,当我对它的配置感到满意时,我只需单击AWS CLI Export按钮并复制创建EMR的CLI命令。

我需要在我的AWS Data Pipeline流程中创建EMR,而不是配置EmrCluser,然后运行我想要的任何EmrActivity我想知道我是否可以复制我在测试期间导出的CLI命令,并将其粘贴到ShellCommandActivity内,这将创建EMR。从那里我可以使用EmrActivity进行一些处理,或者只使用ShellCommandActivity进行处理。

我可以使用通过ShellCommandActivity运行的CLI命令创建AWS Data Pipeline EMR群集吗?如果我这样做,我将能够针对该EMR集群运行EmrActivity吗?我只是认为以这种方式创建EMR会更容易,因为我可以使用AWS管理控制台创建我的EMR,然后我可以在导出CLI命令之前测试我的EMR,而不是通过正确构建EMR的过程AWS Data Pipeline向导/ JSON流程。 I.E.,AWS管理控制台上的实际EMR向导比数据管道向导更容易在AWS管理控制台上创建EMR,特别是在选择我的安全组和各种配置时。

更新

我刚刚确认我可以通过ShellCommandActivity运行CLI命令来通过数据管道创建我的EMR,但这可能是代码味道还是不好的做法?以这种方式在数据管道上创建和EMR是否有任何不足之处,而不是通过预定义的EmrCluster命令来实现?

1 个答案:

答案 0 :(得分:1)

这是可能的,但有点复杂:

  1. 以下操作或脚本本身必须等待创建群集。确保操作不会超时。
  2. 数据管道不了解群集,因此您需要在EMRActivity中指定workerGroup而不是runsOn。您还需要在群集上安装Task Runner