15

我尝试将 Airbnb AirFlow 配置为使用 CeleryExecutor,如下所示:

我将executerairflow.cfg中的从更改SequentialExecutorCeleryExecutor

# 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_alchemy_conn配置如下:

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

我查看了 Airflow 的 GIT(https://github.com/airbnb/airflow/blob/master/airflow/configuration.py

发现下面的代码抛出了这个异常:

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_alchemy_conn不能包含sqlite.

你知道如何配置CeleryExecutor没有 sqllite 吗?请注意,我下载了 rabitMQ 以根据需要与 CeleryExecuter 一起使用。

4

4 回答 4

20

AirFlow 说,CeleryExecutor除了默认数据库 SQLite 之外,它还需要其他后端。例如,您必须使用MySQLor PostgreSQL

必须更改sql_alchemy_connin以遵循 SqlAlchemy 连接字符串结构(请参阅SqlAlchemy 文档airflow.cfg

例如,

sql_alchemy_conn = postgresql+psycopg2://airflow:airflow@127.0.0.1:5432/airflow
于 2016-05-11T08:56:41.857 回答
5

要为 mysql 配置 Airflow,首先安装 mysql这可能会有所帮助,或者只是谷歌它

  • 转到气流安装主管通常 /home//airflow
  • 编辑气流.cfg
  • 定位

    sql_alchemy_conn = sqlite:////home/vipul/airflow/airflow.db

并在它前面添加#,所以它看起来像

#sql_alchemy_conn = sqlite:////home/vipul/airflow/airflow.db 

如果你有默认的 sqlite

  • 在下面添加这一行

    sql_alchemy_conn = mysql://:@localhost:3306/

  • 保存文件

  • 运行命令

    气流初始化数据库

并做了 !

于 2017-02-25T11:07:56.217 回答
1

如果你在 Kubernetes 集群上运行它。使用以下配置:

airflow:
  config:
    AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://postgres:airflow@airflow-postgresql:5432/airflow
于 2019-11-12T00:35:23.773 回答
1

正如其他答案所述,您需要使用除 SQLite 之外的其他数据库。此外,您需要安装rabbitmq,对其进行适当的配置,并更改每个airflow.cfg 以获得正确的rabbitmq 信息。有关这方面的优秀教程,请参阅A Guide On How To Build An Airflow Server/Cluster

于 2017-02-28T14:19:35.147 回答