2

我需要并行运行 dags,但不需要显着扩展,因此 LocalExecutor 可以很好地完成这项工作。我查看了 Airflow 文档并首先创建了一个 MySQL 数据库:

CREATE DATABASE airflow_db CHARACTER SET utf8;
CREATE USER <user> IDENTIFIED BY <pass>;
GRANT ALL PRIVILEGES ON airflow_db.* TO <user>;

然后我在airflow.cfg文件中修改以下参数:

executor = LocalExecutor
sql_alchemy_conn = mysql+mysqlconnector://<user>:<pass>@localhost:3306/airflow_db

当我运行airflow db init时,我遇到以下错误消息:

AttributeError:“MySQLConverter”对象没有属性“_dagruntype_to_mysql”

在处理上述异常的过程中,又发生了一个异常:TypeError: Python 'dagruntype' cannot be convert to a MySQL type

请注意,airflow.cfg文件中没有其他任何内容被更改,并且使用带有 sqlite 的默认 SequentialExecutor 可以让一切正常运行。另请注意,我使用的是 Airflow 版本 2.2.0

4

1 回答 1

2

我找到了自己问题的解决方案。我没有使用 mysqlconnector,而是使用了 pymysql 驱动程序:

pip install PyMySQL

然后可以按如下方式调整气流.cfg参数:

sql_alchemy_conn = mysql+pymysql://<user>:<pass>@localhost:3306/airflow_db

其他一切都可以保持不变。

于 2021-10-31T05:27:50.257 回答