Airflow2.4.3 - 使用 MySQL5.7 数据库

说明

登录 Airflow 网页后,提示推荐使用 MySQL 数据库存储元信息,如下:

安装 MySQL

大数据环境中,在 Hive 部分已经安装 MySQL,这里不再讲解安装 MySQL,详见:hive3.1.x centos7安装部署mysql5.7.32(.tar.gz解压缩版)

提示: 该MySQL 在 hadoop1 服务器上

修改配置

初始化数据库时,表中时间字段是 空值 或 类似 0000-00-00 00:00:00 的数据,MySQL 默认不允许,所有报错如下:

Invalid default value for 'updated_at'

解决

修改下面配置

vim /etc/my.cnf

增加下面配置:

[mysqld]
explicit_defaults_for_timestamp = ON

输入 esc:wq 保存退出

重启 MySQL

service  mysql restart

创建数据库

CREATE DATABASE airflow_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

安装 MySQL 驱动

Python 连接 MySQL,需要使用驱动,类似 java 连接 MySQL

(airflow) [root@hadoop3 ~]#
 pip install mysql-connector-python -i https://pypi.tuna.tsinghua.edu.cn/simple

修改配置文件

(airflow) [root@hadoop3 ~]# vim airflow/airflow.cfg

将下面这行注销掉:

# sql_alchemy_conn = sqlite:////root/airflow/airflow.db

增加下面行:

sql_alchemy_conn = mysql+mysqlconnector://root:root@hadoop1:3306/airflow_db

执行 esc:wq 保存退出

初始化数据库

(airflow) [root@hadoop3 program]# airflow db init

看到下面信息,说明初始化完成:

Initialization done

创建用户

(airflow) [root@hadoop3 ~]# airflow users create \
--username admin \
--firstname admin \
--lastname admin \
--role Admin \
--email 65242847@qq.com

提示输入密码,如下:

Password:

输入密码:admin,敲回车

提示确认输入密码,如下:

Repeat for confirmation:

输入密码:admin,敲回车

提示下面信息,说明成功:

[2023-04-09 19:00:24,510] {manager.py:212} INFO - Added user admin
User "admin" created with role "Admin"

重新启动

[root@hadoop3 bin]# ./airflow.sh stop
[root@hadoop3 bin]# ./airflow.sh start

再次访问 web 网页,没有本文开头的提示信息,说明配置成功


原文出处:http://malaoshi.top/show_1IX5HuO4pvTB.html