ubuntu 安装 apache-airflow 教程

ubuntu 安装 apache-airflow 教程

精选文章moguli202025-01-14 10:55:4512A+A-

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

点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2