Apache Airflow如何使用

Apache Airflow 是一个用于编排和调度任务的开源平台。它适用于创建、调度和监控数据工作流。以下是使用 Airflow 的基本步骤:

1. 安装 Apache Airflow

你可以通过以下命令来安装 Airflow:

bash 复制代码
pip install apache-airflow

建议使用虚拟环境来管理 Airflow 的依赖项。

2. 初始化数据库

Airflow 需要一个数据库来存储任务执行状态和其他元数据信息。初始化数据库的命令:

bash 复制代码
airflow db init

3. 创建用户

你需要创建一个管理员账户以访问 Airflow 的 web 界面:

bash 复制代码
airflow users create \
    --username admin \
    --password admin \
    --firstname Firstname \
    --lastname Lastname \
    --role Admin \
    --email admin@example.com

4. 启动 Airflow Scheduler 和 Web Server

Airflow 包含一个调度器(Scheduler)和一个 Web 服务器(Web Server)。你需要分别启动这两个服务:

  • 启动调度器:

    bash 复制代码
    airflow scheduler
  • 启动 Web Server:

    bash 复制代码
    airflow webserver

Web Server 默认在 localhost:8080 上运行,你可以通过浏览器访问它。

5. 创建 DAG(有向无环图)

在 Airflow 中,工作流是通过 DAG(Directed Acyclic Graph)来定义的。一个简单的 DAG 例子如下:

python 复制代码
from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime

def my_task():
    print("This is a task")

default_args = {
    'start_date': datetime(2023, 9, 1),
    'retries': 1
}

with DAG(
    'my_dag',
    default_args=default_args,
    schedule_interval='@daily'
) as dag:

    task = PythonOperator(
        task_id='my_task',
        python_callable=my_task
    )
  • DAG 是用 Python 定义的,default_args 包含任务的默认参数。
  • PythonOperator 用于执行 Python 函数。

6. 设置任务依赖

你可以通过设置任务的依赖来定义任务的执行顺序。例如:

python 复制代码
task1 >> task2  # task1 先执行,task2 后执行

7. 将 DAG 放入 DAGs 文件夹

将你定义的 DAG 文件保存到 Airflow 的 DAGs 文件夹中。这个文件夹的位置通常是 $AIRFLOW_HOME/dags/,或者你可以在 airflow.cfg 文件中配置。

8. 监控 DAG

访问 Airflow 的 Web 界面,你可以看到所有定义的 DAG,查看它们的执行状态,手动触发执行,并监控各个任务的日志。

9. 常见 Airflow 操作

  • 触发 DAG:

    bash 复制代码
    airflow dags trigger my_dag
  • 列出 DAG:

    bash 复制代码
    airflow dags list
  • 查看任务状态:

    bash 复制代码
    airflow tasks list my_dag

Airflow 是一个强大的调度和工作流管理工具,适合处理复杂的数据管道和任务依赖。

相关推荐
网络豆14 天前
Apache Maven 鸿蒙 PC 适配全记录:把 JVM 构建工具交付到 HiShell
maven·apache·harmonyos
网络豆14 天前
Apache Hive 鸿蒙 PC 适配全记录:以 Qt 客户端打通 HiveQL、监控与元数据访问
hive·apache·harmonyos
网络豆14 天前
Apache HBase 鸿蒙 PC 适配全记录:用 Qt 原生客户端打通 REST 管理与数据读写
apache·hbase·harmonyos
无巧不成书021815 天前
Apache Tomcat 9 下载全指南(Windows,Linux,macOS):版本选型、国内镜像、SHA-512 与 PGP 完整性校验
windows·tomcat·apache
Dream-Y.ocean15 天前
鸿蒙平台 Apache Tomcat 管理控制台适配实战:基于 Electron 壳方案的真实 HTTP 服务器实现
tomcat·apache·harmonyos
betazhou15 天前
Apache seatunel常用配置参数解析说明
apache·seatunnel
凤山老林16 天前
Spring Boot 集成 Apache Kafka Streams 构建流处理应用:状态存储、窗口聚合与
spring boot·kafka·apache
DolphinScheduler社区17 天前
Apache DolphinScheduler 8 月报:权限安全加固,调度补火上线,性能与稳定性持续提升
大数据·安全·开源·apache·任务调度·海豚调度
sbjdhjd17 天前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
Jackyzhe18 天前
Apache Iceberg Variant 类型:v3 半结构化数据不再「二选一」
apache