繁体   English   中英

如何将多个 Spark 作业提交到单个 AWS EMR 集群

[英]How to submit multiple spark jobs to single AWS EMR cluster

我正在尝试向 EMR 集群提交多个作业,但我只看到运行 state 和 rest 的第一个作业都在 Accepted state 中。 我的大部分工作都是流式工作。

我有以下查询:

  1. 如何实现这些作业的并行运行?
  2. 自动化这些作业以供将来部署的各种方法是什么?
  3. 如何处理预定的作业(例如每 15 分钟运行一次的作业)?

我正在使用 Java 进行开发。 任何输入都会非常有帮助。

如果 EMR 中的多个步骤不相互依赖,那么您可以使用 EMR 中称为Concurrency的功能来解决您的用例。 此功能仅意味着您一次可以并行运行多个步骤。

此功能来自 EMR 版本5.28.0 如果您使用的是旧版本,则无法使用此功能。

从 AWS 控制台启动 EMR 时,此功能在 UI 中称为“并发” 您可以选择 1 到 256 之间的任何数字。

如果您从 AWS CLI 启动 EMR,则此功能称为“StepConcurrencyLevel”

现在可以在 EMRAWS CLI 详细信息中的多个步骤中阅读有关此内容的更多信息

回答您关于如何处理计划作业的第二个问题?

有多种方法可以做到这一点。 我能想到的一种简单方法是编写一个生成此 EMR 的 lambda function 现在,可以在 AWS cloudwatch 中安排这个 lambda function 以您想要的任何频率运行(比如每 15 分钟或任何时间间隔)。 您只需要提及一个Cron 表达式,它将决定触发该规则的频率。

因此,每次触发规则时,它都会执行您的 lambda function。 而您的 lambda function 反过来会产生 EMR。 通过这种方式,您可以安排您的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM