web-dev-qa-db-ja.com

CeleryExecutorと連携するようにAirflowを構成する

次のように、CeleryExecutorを使用するようにAirbnb AirFlowを構成しようとします。

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_connsqliteを含めることはできません。

SqlliteなしでCeleryExecutorを設定する方法はありますか?必要に応じて、CeleryExecuterを操作するためにrabitMQをダウンロードしたことに注意してください。

10
Elad Eldor

AirFlowによると、CeleryExecutorにはデフォルトのデータベースSQLite以外のバックエンドが必要です。たとえば、MySQLまたはPostgreSQLを使用する必要があります。

sql_alchemy_conn in airflow.cfgは、SqlAlchemy接続文字列構造に従うように変更する必要があります( SqlAlchemyドキュメント を参照)

例えば、

sql_alchemy_conn = postgresql+psycopg2://airflow:[email protected]:5432/airflow
18
Yu You

Mysql用にAirflowを構成するには、まずmysqlをインストールします これは役立つ場合があります または単にそれをグーグル

  • 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 /

  • ファイルを保存する

  • コマンドを実行する

    気流initdb

やった!

5
vipul sharma

Kubernetesクラスターで実行する場合。次の構成を使用します。

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

他の回答で述べたように、SQLite以外に別のデータベースを使用する必要があります。さらに、rabbitmqをインストールして適切に構成し、正しいrabbitmq情報が含まれるように各airflow.cfgを変更する必要があります。これに関する優れたチュートリアルについては、 Airflowサーバー/クラスターの構築方法に関するガイド を参照してください。

1
Jeremy Farrell