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でどのように実行できますか?
Windowsでbash
をアクティブにして、そのままチュートリアルに従うことができます。上記に従って正常に起動して実行することができました。
インストールが完了したら、airflow.cfg
ubuntuにはWindowsシステムによって書き込まれたファイルが表示されないというバグがあるため、すべての設定をlxss(ubuntu)ではなくWindowsシステムのどこかに向けます。
3つの基本オプション
私はこの問題を何度か繰り返し、それを文書化していきました。私が試した3つのことは:
Linuxサービスとして実行したい場合は、オプション番号2を使用することはできません。オプション番号3を使用することはできますが、Dockerで特権コンテナをアクティブ化する必要があるため、実行しませんでしたいつ始めたかはわからない)。また、Dockerでサービスを実行することは、とにかく各コンテナが単一のプロセス/責任単位である必要があるため、一種のパラダイムに反しています。
#2-WSLオプションの詳細な説明
オプション2を使用している場合、基本的な手順は次のとおりです。
この後、あなたは行ってもいいはずです!ブログには、これらのステップの多くについての詳細と、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上で実行されるかどうか、または実行されるかどうかはテストしていません。
残念ながら、これに対する答えは2015年12月の時点で「いいえ」のようです- https://github.com/airbnb/airflow/issues/709 を参照してください。これは、gunicornへの移行によるものです。 gunicornはR18でWindowsサポートを取得する場合があります 。
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時間でそれができると見積もっています。