大数据-251 离线数仓 - Airflow 安装部署避坑指南:1.10.11 与 2.x 命令差异、MySQL 配置与错误排查

大数据-251 离线数仓 - Airflow 安装部署避坑指南:1.10.11 与 2.x 命令差异、MySQL 配置与错误排查 TL;DR场景在 CentOS 7 MySQL 环境部署 Apache Airflow并梳理基础概念、安装流程与 Web 使用。结论当前内容能覆盖入门但存在明显版本混用尤其是 Airflow 1.10.11 与 2.x 命令不一致。产出补齐版本矩阵与错误速查卡方便读者按版本正确安装、初始化、建库、建用户和启动服务。Airflow 基本介绍Apache Airflow 是一个开源的任务调度和工作流管理工具用于编排复杂的数据处理任务。最初由 Airbnb 开发于 2016 年捐赠给 Apache 软件基金会。Airflow 的主要特点是以代码方式定义任务及其依赖关系支持任务的调度和监控适合处理复杂的大数据任务。Airflow 的特点以代码为中心Airflow 使用 Python 定义 DAG提供灵活性和可编程性。扩展性强用户可以自定义 Operator 和 Hook集成各种数据源和工具。强大的 UI 界面提供可视化界面监控任务状态、查看日志、重试失败任务等。丰富的调度选项支持基于时间 (Time-based) 和事件 (Event-based) 的调度。高可用性配合 Celery 和 Kubernetes 等执行器支持分布式架构适合处理大规模任务。使用场景数据管道调度用于管理数据从源到目标的 ETL 流程。如每天从数据库中抽取数据、清洗后存入数据仓库。机器学习工作流管理调度数据预处理、模型训练和模型部署任务。数据验证自动化检查数据的质量和一致性。定期任务自动化定时清理日志、归档数据或生成报告。Airflow安装部署安装依赖CentOS 7.xPython 3.5 以上版本MYSQL 5.7.xApache-Airflow 1.10.11虚拟机可上网需要在线安装包备注后面要安装三个软件Airflow、Atlas、Griffin相对Hadoop的安装都较为复杂正式安装软件之前给虚拟机做一个快照按照讲义中指定的软件安装按照讲义的步骤执行对应的命令命令的遗漏会对后面的安装造成影响pipinstallapache-airflow-ihttps://pypi.tuna.tsinghua.edu.cn/simple# 后续不一定需要 如果报错 根据缺少的依赖补齐即可# 不一定需要pipinstallmysqlclient-ihttps://pypi.tuna.tsinghua.edu.cn/simple# 不一定需要pipinstallSQLAlchemy-ihttps://pypi.tuna.tsinghua.edu.cn/simple安装过程如下所示环境变量# 设置目录配置文件# 添加到配置文件/etc/profile。未设置是缺省值为 ~/airflowexportAIRFLOW_HOME/opt/servers/airflow配置的结果如下所示初始化环境airflow initdb执行结果如下所示此时我们修改配置文件vim/opt/servers/airflow/airflow.cfg查看 sql_alchemy_conn修改一下内容mysql://hive:hive%%40wzk.icuh122.wzk.icu:3306/airflow_db修改的内容如下所示修改之后保存重新执行初始化操作需要在数据库中确认已经建立了 airflow_dbairflow db init可以看到顺利的执行执行了查看数据库可以看到数据库中的表已经通过刚才的指令生成出来了创建用户airflowuserscreate\--usernamewzkicu\--firstnamewzk\--lastnameicu\--roleAdmin\--emailairflowwzk.icu生成结果如下图所示启动服务airflow scheduler-Dairflow webserver-D启动结果如下图启动结果如下图访问服务http://h122.wzk.icu:8080可以看到访问结果如下所示输入刚才创建的账号和密码Web界面Trigger Dag人为执行触发TreeView当dag执行的时候可以点入查看每个Task的执行状态基于树状视图状态success、running、failed、skipped、retry、queued、no statusGraph View基于图视图有向无环图 查看每个Task的执行状态Tasks Duration每个Task的执行时间统计可以选择最近多少次执行Task Tries每个Task的重试次数Gantt View基于甘特图的视图每个Task的执行状态Code View查看任务执行代码Logs查看执行日志比如失败原因Refresh刷新dag任务DELETE Dag删除该Dag任务错误速查症状根因定位修复airflow initdb 可执行但后面又用了 airflow db initAirflow 1.10.11 与 2.x 命令混用先执行 airflow version统一全文版本只保留一套命令体系。airflow users create 报命令不存在实际安装的是 1.10.xairflow --help 查看子命令若写 1.10.11改为对应的用户管理方式若写 2.x前文版本与安装命令同步改掉。pip install apache-airflow 后安装结果不一致未锁定具体版本与依赖约束pip show apache-airflow显式指定版本避免“今天能装、明天报错”。airflow db init 连接 MySQL 失败sql_alchemy_conn 配置错误、数据库未创建、权限不足检查 airflow.cfg、MySQL 库表与授权先建库再校验连接串、用户名密码、主机连通性。MySQL 密码中含特殊字符后连接异常URL 编码处理不一致检查密码是否含 、% 等字符使用正确编码后的连接串并与当前 Airflow/SQLAlchemy 版本匹配。Web 页面打不开 http://host:8080webserver 未启动、端口未放通、服务监听异常ps、日志、端口监听确认 airflow webserver -D 成功检查防火墙、安全组、反向代理。scheduler 启动了但 DAG 不执行DAG 文件未加载、解析报错、调度器异常Web UI、scheduler 日志、DAG 目录检查 DAG 路径、Python 语法、依赖导入与调度器日志。数据库表没生成初始化命令没真正成功查看执行日志与元数据库表确认元数据库连通后重新初始化。页面可登录但功能异常版本、依赖或元数据库迁移状态不一致查看 Web 日志、DB 表结构保证 Airflow 版本、数据库结构、命令体系一致。其他系列 AI篇持续更新中长期更新AI炼丹日志-29 - 字节跳动 DeerFlow 深度研究框斜体样式架 私有部署 测试上手 架构研究持续打造实用AI工具指南AI研究-132 Java 生态前沿 2025Spring、Quarkus、GraalVM、CRaC 与云原生落地 AI模块直达链接 Java篇持续更新中长期更新Java-218 RocketMQ Java API 实战同步/异步 Producer 与 Pull/Push ConsumerMyBatis 已完结Spring 已完结Nginx已完结Tomcat已完结分布式服务已完结Dubbo已完结MySQL已完结MongoDB已完结Neo4j已完结FastDFS 已完结OSS已完结GuavaCache已完结EVCache已完结RabbitMQ已完结RocketMQ正在更新… 深入浅出助你打牢基础 Java模块直达链接 大数据板块已完成多项干货更新300篇包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件覆盖离线实时数仓全栈大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT案例 详解 大数据模块直达链接