Airflow 是一个提供了编程形式去进行编写、调度与监控工作流的开源组件。
在 Airflow 中,工作流由一个个具体的任务(task)组成的有向无环图(DAGs)构成。Airflow Scheduler 基于一系列的 Workers,以 DAG 规定的依赖关系进行具体任务的执行。其 Webserver,提供了丰富的用户界面,让用户可视化地查看当前工作流运行现状,进行历史回顾,监控执行过程,并且在必要的时候通过查看执行日志进行故障排除。
同时,Airflow 提供了丰富的命令行实用命令,在 DAG 文件编写完正式投入生产前,让用户可以更简洁地对其执行复杂的调试。
以代码形式定义的工作流,使其具有更好的可维护性,结合 VCS 可进行更好的版本管理,更具可测试性与协同性。
功能点 | 说明 |
---|---|
自动化安装部署 | 在集群正式创建之前,或者是已存在但尚未引入 Airflow 服务的特定类型集群,您只需要简单勾选上并提交,就能在集群中获得 Airflow 的能力,满足您的生产需要。 |
生产高性能高可用性 | EMR 充分利用新版本 Airflow 的能力,结合集群实际,规划了合适的拓扑,满足您生产上对组件高性能与高可用的双重需求。 |
根据负载实际多维度扩缩容 | 在您生产负载实际发生变化之时,结合页面上提供的 Worker 配置,调整单节点内 Worker 进程伸缩策略,最大化利用节点资源;更进一步可以通过 EMR 集群扩缩容能力,调整集群节点数量来适应。 |
开源兼容,软件栈齐全 | EMR 确保集群内 Airflow 服务100%开源兼容,您无需修改生产代码即可平滑迁移上云。EMR 提供完整的计算引擎软件栈,并在 Airflow 集成了Hive、Spark、Flink、Presto、Trino 等 Provider,您可以直接关联集群内的多个计算引擎协同工作。 |
Airflow-Webserver | Airflow-Scheduler | Airflow-Worker | |
---|---|---|---|
master | * | * | * |
core | * | * | |
task | * |
如果您想快速预览 Airflow 功能,体验编程式工作流调度,请参阅 快速开始。
如果您想了解 Airflow 相关的配置与调优信息,请参阅 Airflow 关键配置。
如果您想进一步了解 Airflow 如何与计算引擎的集成,学习更接近生产实际的案例,请参阅:
基础使用详见:Airflow 代码示例
高阶使用详见:Airflow 高阶使用
最佳实践详见:Airflow 最佳实践
关于更多生产上的 FAQ 与注意点,请移步 常见问题与注意事项 。