首页 > 解决方案 > AWS EMR 集群的最佳 Airflow 架构是什么?

问题描述

我有一个带有 1 个主节点、30 个核心节点和一些自动扩展任务节点的 AWS EMR 集群。现在,Oozie 在集群上运行了数百个 Hive 和 mysql 作业。我打算把一些工作从 Oozie 换成 Airflow。我用谷歌搜索将 Airflow 应用到我的集群。我发现所有 dag 都应该位于每个节点上,并且 Airflow Worker 必须安装在所有节点上。但是,我的 dag 会经常更新,会频繁添加新的 dag,但节点数在 100 个左右,甚至使用自动缩放的节点。而且,如您所知,集群上只有主节点具有 hive/mysql 应用程序。所以我很困惑。谁能告诉我适用于我的 EMR 集群的 Airflow 架构?

标签: amazon-web-servicesairflowcluster-computingamazon-emr

解决方案


Airflow 工作节点与 EMR 节点不同。

在典型的设置中,celery worker(“Airflow worker node”)从作业队列中读取并使用适当的操作符(在这种情况下可能是 SparkSubmitOperator 或可能是 SSHOperator)执行它们。

Celery worker 不会在您的 EMR 节点上运行,因为它们专门用于运行 Hadoop 作业。

Celery worker 可能会在 EMR 集群之外的 EC2 上运行。

在每个 celery worker 上拥有相同 DAG 的一种常见解决方案是将 dag 放在网络存储(如 EFS)上,并将网络驱动器安装到 celery worker EC2 上。


推荐阅读