没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
1
Airflow:Airflow 入门与环境搭建
1 Airflow 简介
1.1 1 Airflow 的历史与发展
Airflow 是由 Airbnb 在 2015 年开源的一个工作流管理平台,旨在提供一种
可扩展、健壮且易于维护的方式来定义和执行数据管道。随着大数据和数据工
程领域的快速发展,Airflow 因其灵活性和强大的社区支持,迅速成为行业内的
标准工具之一。它不仅被用于数据处理和 ETL(Extract, Transform, Load)任务,
还广泛应用于机器学习工作流、数据科学项目管理和各种自动化任务的调度。
1.1.1 发展历程
� 2015 年:Airflow 首次由 Airbnb 开源,旨在解决内部数据管道的
管理问题。
� 2016 年:社区开始迅速增长,Airflow 被越来越多的公司采用,包
括 Uber、Lyft 和 Spotify。
� 2018 年:Airflow 1.10 版本发布,引入了多项改进和新功能,如动
态任务生成和增强的 DAG(Directed Acyclic Graph)管理。
� 2020 年:Airflow 2.0 版本发布,带来了重大的架构改进,包括新
的 Web 服务器和调度器,以及对 Python 3.7 的支持。
1.2 2 Airflow 的核心概念与优势
1.2.1 核心概念
� DAG(Directed Acyclic Graph):Airflow 的核心是 DAG,它定义了
任务之间的依赖关系。每个 DAG 都是一个 Python 模块,其中包含多个
任务,这些任务按照定义的顺序执行。
� Task:任务是 DAG 中的基本执行单元,可以是任何 Python 可调用
的对象,如函数、脚本或外部程序。
� Operator:Airflow 提供了多种预定义的 Operator,用于执行常见
的任务,如执行 SQL 查询、运行 Python 脚本或处理文件。
� Sensor:Sensor 用于等待某些条件的满足,如等待文件到达或外
部 API 响应,然后继续执行后续任务。
� Execution:Airflow 调度器根据 DAG 的定义和任务之间的依赖关系
执行任务。每个任务执行都有一个状态,如成功、失败或运行中。
1.2.2 优势
� 可扩展性:Airflow 的设计允许轻松扩展,无论是增加任务数量还
2
是提高执行并发性。
� 健壮性:Airflow 具有强大的错误处理和重试机制,确保任务在失
败后可以自动重试。
� 灵活性:由于 DAG 是 Python 代码,因此可以轻松地定义复杂的
任务依赖关系和动态生成任务。
� 社区支持:Airflow 拥有一个活跃的社区,提供了大量的插件、
Operator 和示例,帮助用户快速上手和解决问题。
1.2.3 示例:定义一个简单的 DAG
#
导入必要的模块
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
#
定义
DAG
的默认参数
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2023, 1, 1),
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
#
创建
DAG
实例
dag = DAG(
'tutorial_dag',
default_args=default_args,
description='A simple tutorial DAG',
schedule_interval=timedelta(days=1),
)
#
定义任务
def print_hello():
print("Hello, Airflow!")
#
创建
PythonOperator
hello_task = PythonOperator(
task_id='hello_task',
python_callable=print_hello,
dag=dag,
)
3
#
定义任务之间的依赖关系
hello_task
在这个例子中,我们定义了一个每天运行一次的 DAG,其中包含一个简单
的 Python 任务,用于打印“Hello, Airflow!”。通过这种方式,Airflow 允许我们
以代码的形式定义和管理复杂的工作流,提供了一个清晰且可维护的解决方案。
1.3 Airflow 环境搭建
1.3.1 1、系统需求与环境准备
在开始 Airflow 的环境搭建之前,确保你的系统满足以下最低要求:
� 操作系统:Airflow 支持多种操作系统,包括 Linux、macOS 和
Windows。然而,官方推荐使用 Linux 或 macOS,因为 Windows 上的支
持可能有限。
� Python 版本:Airflow 需要 Python 3.7 或更高版本。可以通过运行
python --version 或 python3 --version 来检查你的 Python 版本。
� Docker(可选):如果你选择使用 Docker 来搭建 Airflow 环境,确
保你的系统上已经安装了 Docker。可以通过运行 docker --version 来检查
Docker 的版本。
1.3.1.1 准备工作
1. 更新系统:在开始之前,更新你的系统以确保所有包都是最新的。
sudo apt-get update
sudo apt-get upgrade
2. 安装 Python:如果 Python 版本不符合要求,可以使用 pyenv 或
virtualenv 来管理 Python 环境。
curl https://pyenv.run | bash
3. 安装 Docker(如果选择使用 Docker):
sudo apt-get install docker-ce docker-ce-cli containerd.io
1.3.2 2、使用 Docker 搭建 Airflow 环境
使用 Docker 搭建 Airflow 环境是一种快速且简单的方法,它可以帮助你避
免许多与依赖管理和环境配置相关的问题。
1.3.2.1 步骤
1. 拉取 Airflow Docker 镜像:
docker pull apache/airflow:2.4.0
2. 运行 Airflow 容器:
4
docker run -d -p 8080:8080 -p 5555:5555 --name airflow \
-e AIRFLOW__CORE__EXECUTOR=LocalExecutor \
-e AIRFLOW__CORE__SQL_ALCHEMY_CONN=sqlite:///airflow.db \
-v /path/to/your/airflow/dags:/opt/airflow/dags \
-v /path/to/your/airflow/logs:/opt/airflow/logs \
-v /path/to/your/airflow/plugins:/opt/airflow/plugins \
apache/airflow:2.4.0
3. 初始化数据库:
docker exec airflow airflow db init
4. 创建超级用户:
docker exec airflow airflow users create \
--username admin \
--email admin@example.com \
--password admin \
--role Admin \
--firstname Admin \
--lastname Admin
1.3.3 3、手动安装 Airflow
如果你选择不使用 Docker,可以手动在你的系统上安装 Airflow。
1.3.3.1 步骤
1. 创建虚拟环境:
python3 -m venv airflow_env
source airflow_env/bin/activate
2. 安装 Airflow:
pip install apache-airflow
3. 初始化数据库:
airflow db init
4. 创建超级用户:
airflow users create \
--username admin \
--email admin@example.com \
--password admin \
--role Admin \
--firstname Admin \
--lastname Admin
1.3.4 4、配置 Airflow 环境
无论你选择哪种安装方法,配置 Airflow 环境都是至关重要的一步,它确保
5
Airflow 能够正确地运行你的 DAGs。
1.3.4.1 配置文件
Airflow 的配置文件位于/path/to/your/airflow/airflow.cfg。你需要编辑这个
文件来设置你的环境,例如:
� 设置数据库:默认情况下,Airflow 使用 SQLite 数据库。如果你需
要使用 PostgreSQL 或 MySQL,需要修改 SQL_ALCHEMY_CONN 设置。
� 设置执行器:Airflow 支持多种执行器,包括 LocalExecutor、
CeleryExecutor 和 KubernetesExecutor。选择一个执行器来管理你的任务
执行。
� 设置 DAGs 目录:确保 DAGS_FOLDER 设置正确,指向你的 DAGs
文件所在的目录。
1.3.4.2 示例
编辑 airflow.cfg 文件,设置数据库连接和 DAGs 目录:
[core]
#
设置执行器
executor = LocalExecutor
#
设置数据库连接
sql_alchemy_conn = sqlite:///airflow.db
#
设置
DAGs
目录
dags_folder = /path/to/your/airflow/dags
完成这些步骤后,你的 Airflow 环境应该已经搭建完成,可以开始创建和运
行 DAGs 了。
2 Airflow 基本操作
2.1 1、初始化数据库
在开始使用 Apache Airflow 之前,一个关键的步骤是初始化数据库。
Airflow 使用数据库来存储 DAG 定义、任务实例、依赖关系、日志等信息。首次
运行 Airflow 时,必须执行数据库初始化,以确保所有必要的表和数据结构都已
创建。
2.1.1 初始化数据库的步骤
1. 打开终端或命令行界面。
2. 切换到 Airflow 的环境。如果你使用的是虚拟环境,确保激活它。
3. 运行 Airflow 的初始化数据库命令。这通常通过 Airflow 的 CLI(命
剩余22页未读,继续阅读
资源评论
zhubeibei168
- 粉丝: 1w+
- 资源: 630
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【报告类】springboot vue的漫画天堂网.docx
- 【报告类】springboot vue 停车场管理系统.docx
- 【报告类】springboot vue教务管理系统.docx
- 【报告类】springboot vue基于Java的秦皇岛旅游景点管理系统1.docx
- 【报告类】springboot vue动漫交流与推荐平台.docx
- 【报告类】springboot vue农产品销售系统.docx
- springboot校园疫情防控系统.docx
- 【报告类】ssm 物流管理系统.docx
- 人工智能准备指数【AI Preparedness Index, AIPI】-2023年-全球+单个国家+主要地区
- 使用Python与Pygame库实现跨年烟花视觉效果模拟
- 基于微信云开发实现的校园兼职小程序项目源码.zip
- Java 后端 maven3.6.0安装包
- 年终工作总结ppt模板
- 车用驱动电机原理与控制基础-P141公式(6-19)~(6-20)
- 论文 网络海鲜市场.doc
- 论文 校园网书店的设计与实现.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功