一、前提条件
·已创建 Airflow 集群(EMR on TKE 或 EMR on CVM)。EMR on CVM 集群创建时将自动创建元数据库实例(云数据库 MySQL 与 Redis),请确认账号具备相关资源创建权限,并了解对应计费规则。
·这篇按 EMR on TKE、EMR on CVM 的顺序分别说明,请按实际使用的集群形态查看对应章节。
二、创建 Airflow 集群
EMR on TKE 的 Airflow 集群使用产品发行版 EMR-TKE-AIRFLOW-V1.0.0。
三、使用 KubernetesExecutor
EMR on TKE 的 EMR-TKE-AIRFLOW-V1.0.0 同时支持 CeleryExecutor 与 KubernetesExecutor,本节介绍 KubernetesExecutor:Scheduler 直接调用 Kubernetes API 为每个任务实例(Task Instance)创建独立的 Task Pod,任务按 0..N 弹性创建,与现有 DAG / Task / Connection / Variable / XCom 体系完全兼容;任务状态通过 Kubernetes Watch 机制获取,无需依赖 Redis。
在 DAG 中可通过 executor_config 指定任务 Pod 的资源、镜像与调度策略:
from airflow import DAGfrom airflow.operators.bash import BashOperatorfrom datetime import datetimeexecutor_config = { "KubernetesExecutor": { "request_memory": "2Gi", "limit_memory": "4Gi", "request_cpu": "500m", "limit_cpu": "1", "image": "your-task-image:tag", }}with DAG( dag_id="example_k8s_executor", start_date=datetime(2026, 9, 30), schedule=None,) as dag: task = BashOperator( task_id="run_in_pod", bash_command="echo hello from task pod", executor_config=executor_config, )
注意:说明:
四、使用 CeleryExecutor
EMR on TKE 同样支持 CeleryExecutor:Scheduler 将任务实例下发至 Celery 队列,由 Worker 拉取执行,任务执行状态与队列消息存储在 Redis 中。
注意:说明:
注意:CeleryExecutor 依赖 Redis 作为任务队列中间件;KubernetesExecutor 由 Scheduler 直接调用 Kubernetes API 创建 Pod,无此依赖。具体配置项以控制台为准。
五、访问 WebUI 与运维
EMR on TKE Airflow 集群同样支持通过控制台 集群服务 > Airflow 页面的 WebUI 入口访问 Airflow UI,并支持服务状态查看、角色管理、配置管理等运维操作。
六、创建 Airflow 集群
1. 登录 EMR 购买页,集群类型选择 Airflow。
2. 配置元数据存储。
·普通数据库:自动创建云数据库 MySQL 实例,用于永久存储 Airflow 所有任务历史运行记录;可选开通数据库审计服务(单独计费)。
·高性能数据库:自动创建云数据库 Redis 实例,用于临时存储 Airflow 当前任务队列中的消息和任务的执行状态。
3. 选择高可用模式与部署方式。
·支持跨可用区部署(均衡策略)。
七、访问 Airflow WebUI
集群创建完成后,在 EMR 控制台 对应集群的 集群服务 > Airflow 页面,通过 WebUI 入口访问 Airflow UI(8330 端口),即可查看 DAG 列表、手动触发任务、查看任务实例状态与日志。
八、扩容与缩容
·扩容:支持添加角色实例。
·缩容:支持移除角色实例。
九、监控与运维
·监控:支持服务状态、角色健康状态(Master / Core)、服务监控指标 Dashboard 查看。
·运维操作:支持服务的重启、启动、暂停、维护模式、查看端口、角色管理、配置管理等操作。
·其他能力:支持日志查看、集群脚本、引导操作、导出软件配置。