配置Airflow以使用CeleryExecutor

时间:2016-04-24 11:29:32

标签: airflow

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

我将airflow.cfg中的executerSequentialExecutor更改为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_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

您是否知道如何在没有sqllite的情况下配置CeleryExecutor?请注意,我根据需要下载了rabitMQ以便使用CeleryExecuter。

4 个答案:

答案 0 :(得分:16)

据AirFlow称,$nested->setQuery(new \Elastica\Query\Term(array('name' => array('value' => $searchText)))); $nested->setPath('tags'); $query_part->addShould($nested); $query = new \Elastica\Query\Filtered($query_part/*, $filters // in case you had other filters*/); return $this->find($query); 需要其他后端,而不是默认数据库SQLite。例如,您必须使用CeleryExecutorMySQL

PostgreSQL中的sql_alchemy_conn必须更改为遵循SqlAlchemy连接字符串结构(请参阅SqlAlchemy document

例如,

airflow.cfg

答案 1 :(得分:4)

为mysql配置Airflow 首先安装mysql this might help或只是谷歌

  • goto airflow installation director通常/ home // airflow
  • 编辑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 /

  • 保存文件

  • 运行命令

    airflow initdb

并完成了!

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

airflow:
  config:
    AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://postgres:airflow@airflow-postgresql:5432/airflow