网站首页 > 技术文章 正文
ubuntu 安装 apache-airflow 教程
安装 apache-airflow
# pip 安装
pip install apache-airflow
# 版本验证
airflow version
# 初始数据库和建立管理账号
airflow db init
airflow users create --username admin --firstname zhao --lastname chen --role Admin --email chenzhaoplus@163.com
# 输入密码
Password: 111111
# 后台起动 airflow 排程器
airflow scheduler -D
# 后台起动 airflow 服务器
# 8080 端口容易冲突,可以指定其他的端口,如18080
airflow webserver -p 18080 -D
# 杀进程
ps -ef|egrep 'scheduler|airflow-webserver'|grep -v grep|awk '{print $2}'|xargs kill -9
启动/停止脚本
首先进入 conda环境( conda activate your_env_name ),再执行以下脚本
#!/bin/bash
case $1 in
start)
echo " --------启动 airflow-------"
airflow webserver -p 18080 -D
airflow scheduler -D
;;
stop)
echo " --------关闭 airflow-------"
ps -ef|egrep 'scheduler|airflow-webserver'|grep -v grep|awk '{print $2}'|xargs kill -15
;;
*)
echo "未知命令: $1"
;;
esac
如果出现报错: 坏的解释器 或者其他非正常问题执行以下命令转换脚本文件编码
sed -i 's/\\r$//' airflow.sh
赋予文件权限
chmod +x airflow.sh
执行脚本命令,启动 airflow
conda activate <your_env_name>
airflow.sh start
执行脚本命令,关闭 airflow
airflow.sh stop
conda deactivate <your_env_name>
访问地址
http://127.0.0.1:18080/
数据库换成 MySQL
#安装mysql依赖
apt-get update
apt-get install pkg-config
apt-get install libmysqlclient-dev
# apt install libpython3-dev
apt install libevent-dev
pip install mysqlclient pymysql mysql
# 修改mysql参数,配置[mysqld]部分
vi /etc/my.cnf
explicit_defaults_for_timestamp=1
# 创建数据库用户,注意这里使用 utf8mb3,因为官网说了 utf8mb4 会有一些问题
CREATE DATABASE airflow_db CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci;
CREATE USER 'airflow_user' IDENTIFIED BY '<your_db_password>';
GRANT ALL PRIVILEGES ON airflow_db.* TO 'airflow_user';
# 修改 airflow 配置文件
vi ~/airflow/airflow.cfg
# 官网不推荐在开发中使用顺序执行器,会造成任务调度阻塞。
executor = LocalExecutor
sql_alchemy_conn = mysql+mysqlconnector://airflow_user:123456@<your_db_url>:<your_db_port>/airflow_db?charset=utf8
sql_engine_encoding = utf-8
# 初始数据库和建立管理账号
airflow db init
airflow users create --username admin --firstname <your_first_name> --lastname <your_last_name> --role Admin --email <your_email>
# 输入密码
Password: 111111
常用命令
# dags列表
airflow dags list
# 任务列表, hello_airflow 是任务id
airflow tasks list tutorial
airflow tasks list tutorial --tree
# 显示流程图
airflow dags show tutorial
# 保存流程图
airflow dags show tutorial --save ~/airflow/tutorial.png
# 测试
airflow dags test tutorial
airflow tasks test tutorial print_date 2022-09-01
高级命令
# 手动触发
airflow dags trigger --exec-date <execution_date> <dag_id>
# 手动触发,带参数
airflow dags trigger --conf '{"conf1": "value1"}' --exec-date <execution_date> <dag_id>
# Backfill(回填)可以解决某种场景:用户创建了一个start_date为2024-11-01的DAG,每天导入当天的数据。
# 这个DAG只能导入从2024-11-01开始的数据。
# 如果用户希望导入2024年10月份的数据,就必须使用Backfill功能。
airflow dags backfill --start-date <START_DATE> --end-date <END_DATE> <dag_id>
参考
airflow官网 https://airflow.apache.org/docs/apache-airflow/2.10.2/
airflow安装及配置使用mysql作为数据库 https://blog.csdn.net/java31/article/details/121868003
Airflow从入门到实战(万字长文) https://blog.csdn.net/weixin_45417821/article/details/128696999
- 上一篇: FastAPI 和后台任务:实现异步处理
- 下一篇: mysql 数据库使用分享(多图解析)
猜你喜欢
- 2024-12-13 Flask-PyMongo 小试牛刀
- 2024-12-13 盘点2024年最有“钱途”的8个节点及布局指南
- 2024-12-13 Python+Socket实现多人聊天室:聊天、群聊、图片、表情、文件等
- 2024-12-13 AI Agent 和 LangGraph 给项目管理方式带来新的变革
- 2024-12-13 信息安全聚合 Sec-News 的重构之路
- 2024-12-13 (进阶篇)简析一个比Flask和Tornado更高性能的API 框架FastAPI
- 2024-12-13 Flask_admin—快速搭建访客登记系统Web管理后台
- 2024-12-13 Flask开发RESTful API
- 2024-12-13 mysql 数据库使用分享(多图解析)
- 2024-12-13 FastAPI 和后台任务:实现异步处理
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)