sim*_*ing 6 airflow apache-airflow
试图将 Airflow 进程拆分到 2 个服务器上。服务器 A 已经在独立模式下运行,上面有所有东西,有 DAG,我想将它设置为新设置中的工作人员,并带有额外的服务器。
服务器 B 是将在 MySQL 上托管元数据数据库的新服务器。
我可以让服务器 A 运行 LocalExecutor,还是必须使用 CeleryExecutor?就airflow scheduler必须具有正确的DAG的服务器上运行?还是必须在集群中的每台服务器上运行?对进程之间的依赖关系感到困惑
本文出色地展示了如何将 Airflow 集群到多台服务器上。
多节点(集群)气流设置
Apache Airflow 的一种更正式的设置是将守护进程作为集群分布在多台机器上。
好处
更高的可用性
如果其中一个工作节点宕机或被故意脱机,集群仍可运行,任务仍将执行。
分布式处理
如果您有一个包含多个内存密集型任务的工作流,那么这些任务将得到更好的分配,以允许在整个集群中更高地利用数据并提供更快的任务执行速度。
扩展工人
水平
您可以水平扩展集群并通过向集群添加更多执行器节点并允许这些新节点减轻现有节点的负载来分配处理。由于工作人员不需要向任何中央机构注册即可开始处理任务,因此可以打开和关闭机器,而不会导致集群停机。
垂直
您可以通过增加每个节点上运行的 celeryd 守护进程的数量来垂直扩展集群。这可以通过增加 {AIRFLOW_HOME}/airflow.cfg 文件中“celeryd_concurrency”配置中的值来完成。
例子:
celeryd_concurrency = 30
Run Code Online (Sandbox Code Playgroud)
您可能需要增加实例的大小以支持更多的 celeryd 进程。这将取决于您在集群上运行的任务的内存和 CPU 强度。
扩展主节点
您还可以向集群添加更多主节点,以扩展在主节点上运行的服务。这将主要允许您扩展 Web 服务器守护程序,以防一台机器处理的 HTTP 请求过多,或者您想为该服务提供更高的可用性。
需要注意的一件事是一次只能运行一个 Scheduler 实例。如果您有多个调度程序在运行,则可能会调度单个任务的多个实例。如果您正在运行某种 ETL 过程,这可能会导致您的工作流出现一些重大问题,并导致最终表中出现重复数据。
如果您愿意,还可以将调度程序守护程序设置为在其自己的专用主节点上运行。
Apache Airflow 集群设置步骤
先决条件
附加文件
| 归档时间: |
|
| 查看次数: |
4808 次 |
| 最近记录: |