Airflow 配置气流以使用CeleryExecutor
我尝试将Airbnb AirFlow配置为使用CeleryExecutor,如下所示:Airflow 配置气流以使用CeleryExecutor,airflow,Airflow,我尝试将Airbnb AirFlow配置为使用CeleryExecutor,如下所示: sql_alchemy_conn = sqlite:////root/airflow/airflow.db 我将afflow.cfg中的executer从SequentialExecutor更改为CeleryExecutor: # The executor class that airflow should use. Choices include # SequentialExecutor, LocalEx
sql_alchemy_conn = sqlite:////root/airflow/airflow.db
我将afflow.cfg中的executer
从SequentialExecutor
更改为CeleryExecutor
:
# The executor class that airflow should use. Choices include
# SequentialExecutor, LocalExecutor, CeleryExecutor
executor = CeleryExecutor
但我得到了以下错误:
airflow.configuration.AirflowConfigException: error: cannot use sqlite with the CeleryExecutor
请注意,sql\u alchemy\u conn
的配置如下:
sql_alchemy_conn = sqlite:////root/airflow/airflow.db
我看了看气流的GIT()
并发现以下代码引发此异常:
def _validate(self):
if (
self.get("core", "executor") != 'SequentialExecutor' and
"sqlite" in self.get('core', 'sql_alchemy_conn')):
raise AirflowConfigException("error: cannot use sqlite with the {}".
format(self.get('core', 'executor')))
从这个validate
方法看来,sql\u alchemy\u conn
不能包含sqlite
您知道如何在没有sqllite的情况下配置
CeleryExecutor
?请注意,我下载了rabitMQ,以便根据需要使用CeleryExecuter。据AirFlow称,CeleryExecutor
需要默认数据库SQLite以外的其他后端。例如,您必须使用MySQL
或PostgreSQL
必须更改气流.cfg中的sql\u alchemy\u conn
,以遵循SqlAlchemy连接字符串结构(请参阅)
比如说,
sql_alchemy_conn = postgresql+psycopg2://airflow:airflow@127.0.0.1:5432/airflow
为mysql配置气流 首先安装mysql,或者直接用谷歌搜索它
- goto气流安装主管/家庭//气流
- 编辑afflow.cfg
- 定位 sql\u炼金术\u连接=sqlite:////home/vipul/airflow/airflow.db
#sql_alchemy_conn = sqlite:////home/vipul/airflow/airflow.db
如果您有默认的sqlite
- 将这一行添加到下面 sql\u alchemy\u conn=mysql://:@localhost:3306/
- 保存文件
- 运行命令 气流初始数据库
完成了 正如其他答案所述,除了SQLite之外,您还需要使用不同的数据库。此外,您还需要安装rabbitmq,对其进行适当的配置,并更改每个airflow.cfg以获得正确的rabbitmq信息。有关这方面的优秀教程,请参见。如果您在kubernetes集群上运行它。使用以下配置:
airflow:
config:
AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://postgres:airflow@airflow-postgresql:5432/airflow
我可以知道如何添加mysql连接而不是postgresql@abhijeetmotesqlalchemy的msql连接字符串可以类似于
mysql://username:password@主机名:port/database\u name
这是我所学的全部教程。此外,您还需要在连接mysql://:user:password@localhost:3306/数据库