首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MWAA无工人

MWAA无工人
EN

Stack Overflow用户
提问于 2021-11-29 22:48:43
回答 1查看 375关注 0票数 1

我目前还未认识的MWAA

MWAA为调度器和工作人员使用Fargate。MWAA必须至少有一个调度器,它必须是Fargate,我假设24/7无休止的过程(以避免分解)。调度器Fargate机器也在运行芹菜执行器。

当触发时,DAG被执行器拆分为任务,每个任务被添加到队列中,由Worker从队列中提取。对于bash操作符,任务被提交给Fargate工人并在那里执行。

工作人员缩放是由Fargate管理的,您只能指定min/max计数。在同时提交任务的情况下,会触发员工分解--可能会失败(知道问题)。

问题

假设单任务DAG的执行。任务在另一个AWS服务上执行,即EMR (EmrAddStepsOperator)。

  1. EmrAddStepsOperator是否先提交给MWAA法门工人,然后才提交给电子病历?还是由MWAA调度器直接提交给EMR?
  2. 如果我的所有任务都在EMR执行,我是否需要MWAA工人?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-30 18:49:01

答案是一样的,不管MWAA //其他什么东西。

气流是调节器的工具。任务在气流工作人员上运行,但是任务的“核心”可以在另一个服务上执行。考虑一下执行某些SQL的任务用例。SQL的实际计算是在数据库上完成的,而不是在提交SQL作业的机器上完成的。气流必须为每个操作员创建一个任务,此任务必须在气流工作人员上运行。如果任务对工作人员本身执行计算/处理,或者将作业提交到另一个服务,然后等待依赖于任务本身的响应。

为了更好地解释:任何操作符必须实现的execute()函数都运行在您的芹菜工人身上。在这个函数中,可以有部分代码将作业提交到另一个服务,如EMR。在这些情况下,您还可以选择在外部服务(EMR)返回答案(同步方式)或同时释放芹菜工人做其他事情(运行另一个任务)之前保持芹菜工人。这取决于操作员是如何实现的。

因此,要回答你的问题:

  1. 当气流调度器执行EmrAddStepsOperator时,将为它创建一个任务。该任务将由CeleryExecutor处理,并将发送给芹菜工人。当任务开始运行时,它将执行步骤,只有这样,才会向EMR提交一个步骤。
  2. 是的,因为CeleryExecutor向芹菜工人提交任务。它不知道/不关心您的任务正在与哪些服务交互。也就是说,如果您的任务只将作业提交给其他服务,那么您可能不需要内存/cpu较高的工作人员,因为工作人员不需要进行大量的处理。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70162273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档