ubuntu 安装 apache-airflow 教程
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
下一篇:SSL证书怎么安装部署?