web-dev-qa-db-ja.com

WindowsでAirflowを実行する方法

Airflowを実行するための通常の手順は、Windows環境には適用されません。

# airflow needs a home, ~/airflow is the default,
# but you can lay foundation somewhere else if you prefer
# (optional)
export AIRFLOW_HOME=~/airflow

# install from pypi using pip
pip install airflow

# initialize the database
airflow initdb

# start the web server, default port is 8080
airflow webserver -p 8080

Airflowユーティリティはコマンドラインで使用できません。手動で追加する他の場所が見つかりません。 AirflowはWindowsでどのように実行できますか?

24
Rafael

Windowsでbashをアクティブにして、そのままチュートリアルに従うことができます。上記に従って正常に起動して実行することができました。

インストールが完了したら、airflow.cfg ubuntuにはWindowsシステムによって書き込まれたファイルが表示されないというバグがあるため、すべての設定をlxss(ubuntu)ではなくWindowsシステムのどこかに向けます。

3
Alex

3つの基本オプション

私はこの問題を何度か繰り返し、それを文書化していきました。私が試した3つのことは:

  1. Windows 10に直接Airflowをインストールする -この試行は失敗しました。
  2. buntuを使用してWindows 10 WSLにAirflowをインストールする -これはうまくいきました。 WSLはLinux用のWindowsサブシステムであり、Windowsストアで無料で入手できます。
  3. Docker + Centosを介してWindows 10にAirflowをインストールする -これもうまくいきました。

Linuxサービスとして実行したい場合は、オプション番号2を使用することはできません。オプション番号3を使用することはできますが、Dockerで特権コンテナをアクティブ化する必要があるため、実行しませんでしたいつ始めたかはわからない)。また、Dockerでサービスを実行することは、とにかく各コンテナが単一のプロセス/責任単位である必要があるため、一種のパ​​ラダイムに反しています。

#2-WSLオプションの詳細な説明

オプション2を使用している場合、基本的な手順は次のとおりです。

  • WSL Ubuntuをインストールして開きます。
  • python 3.6.5程度( "python3 -version")が付属していることを確認します。
  • まだそうだと仮定して、これらのパッケージを追加して、PIPをインストールすることができるようにします。
    • Sudo apt-get install software-properties-common
    • 須藤apt-add-repositoryユニバース
    • 須藤apt-getアップデート
  • でpipをインストールします。
    • Sudo apt-get install python-pip
  • 次の2つのコマンドを実行して、エアフローをインストールします。
    • エクスポートSLUGIFY_USES_TEXT_UNIDECODE = yes
    • pip install Apache-airflow
  • 新しいターミナルを開きます(驚きましたが、これは必須のようです)。
  • エアフローDBを初期化します:
    • 気流initdb

この後、あなたは行ってもいいはずです!ブログには、これらのステップの多くについての詳細と、WSLのセットアップにかかる時間などの大まかなタイムラインが記載されています。

Airflowをpip経由でインストールする代わりに、 AirflowプロジェクトのGitHub でZipをダウンロードし、解凍して、そのフォルダーで、コマンドラインでpython setup.py installを実行します。 ERROR - 'module' object has no attribute 'SIGALRM'エラーが発生しますが、これまでのところAirflowの機能に影響はありませんでした。

この方法を使用すると、airflow utilはコマンドとして使用できなくなります。回避策として、[current folder]\build\scripts-2.7\airflowファイルを使用します。これは、airflow utilのpythonスクリプトです。

別の解決策は、システムPATH変数に、エアフローを実行するバッチファイル(airflow.bat)へのリンクを追加することです。

python C:\path\to\airflow %*

この時点から、チュートリアルは通常どおり実行できます。

airflow init
airflow webserver -p 8080

AirflowのDAGがWindows上で実行されるかどうか、または実行されるかどうかはテストしていません。

11
Rafael

残念ながら、これに対する答えは2015年12月の時点で「いいえ」のようです- https://github.com/airbnb/airflow/issues/709 を参照してください。これは、gunicornへの移行によるものです。 gunicornはR18でWindowsサポートを取得する場合があります

6
Samir Seth

Cygwin を使用して実行できます。 Cygwinは、Windows上で実行され、Linuxをエミュレートするコマンドラインシェルです。したがって、コマンドを実行できるようになります。

# airflow needs a home, ~/airflow is the default,
# but you can lay foundation somewhere else if you prefer
# (optional)
export AIRFLOW_HOME=~/airflow

# install from pypi using pip
pip install Apache-airflow

# initialize the database
airflow initdb

# start the web server, default port is 8080
airflow webserver -p 8080

注1:会社提供のコンピューターでCygwinを実行している場合、Cygwinアプリケーションを管理者として実行する必要がある場合があります。これは Microsoftの次のチュートリアル で行えます。

注2:私のようにプロキシの背後にいる場合(職場または背後にあるプロキシの場合)、2つの環境変数を設定する必要がありますpipがコマンドラインで機能するため。この場合、Cygwin。詳細については、 このStackOverflowの回答 を参照してください。そこで、Windowsマシンで次の2つの環境変数を設定しました。

// Note this first entry has an S in HTTPS and the other entry is just regular HTTP. Don't forget that distinction in the key name and in the url of the value.
HTTPS_PROXY=https://myUsernameGoesHere:myPasswordGoesHere@yourProxyHostNameGoesHere:yourProxyPortNumberGoesHere

HTTP_PROXY=http://myUsernameGoesHere:myPasswordGoesHere@yourProxyHostNameGoesHere:yourProxyPortNumberGoesHere

動作しなくなった:どうやら上記の作業はすべて、WindowsではAirflowが動作しないため無駄でした。こちらをご覧ください StackOverflow post 。上記の手順により、Pipを使用できます。

あるいは、そしてこれがWindows上で実行されているように見えるかもしれないし、見えないかもしれないことを知っています Oracleのような仮想マシンクライアントをインストールできますVirtualbox または VMwareのワークステーション そして、 buntu Desktop などの希望するLinuxバージョンをセットアップすると、Linuxを正常に実行できます。これを行うためにより詳細な手順が必要な場合は、Stack Exchangeコミュニティの回答 here からこのAskUbuntuをたどることができます。

または(2)AWSアカウントを作成 、次に Linuxを実行する簡単なec2-instanceをセットアップ 、次に そのec2-instanceにSSH し、すべてのコマンドを心のコンテンツに実行します。 AWSは 無料利用枠 を提供しているため、無料で利用できるはずです。さらに、AWSは非常によく文書化されているため、単純なLinuxサーバーを起動して実行するのはそれほど難しくありません。私は、初心者でも約1時間でそれができると見積もっています。

1