我正在尝试将多个作业提交给EMR群集,但是我只看到第一个作业处于运行状态,其余的全部都处于“接受”状态。我的大部分工作都是流作业。
我有以下查询:
我正在使用Java进行开发。任何输入都会真正有帮助。
答案 0 :(得分:3)
如果EMR中的多个步骤不相互依赖,则可以使用EMR中称为Concurrency
的功能来解决您的用例。此功能仅意味着您一次可以并行运行多个步骤。
EMR版本 5.28.0 中具有此功能。如果您使用的版本比此版本旧,则无法使用此功能。
从AWS控制台启动EMR时,此功能在用户界面中称为“并发” 。您可以选择1到256之间的任何数字。
如果要从AWS CLI启动EMR,则此功能称为'StepConcurrencyLevel'。
您可以在multiple steps now in EMR 和AWS CLI details
了解更多信息要回答关于我如何处理计划作业的第二个问题?
有多种方法可以做到这一点。我能想到的一种简单化方法是编写一个生成此EMR的 lambda函数。现在,可以在AWS cloudwatch中安排该lambda函数以所需的任何频率运行(例如每15分钟或任何时间间隔)。您只需要提及一个 Cron表达式,它将决定该规则的触发频率。
因此,每次触发规则时,它将执行lambda函数。然后,您的lambda函数将生成EMR。通过这种方式,您可以安排工作。