LoginSignup
5
9

More than 5 years have passed since last update.

Python3.6でAirflowをインストールする

Last updated at Posted at 2017-05-06

http://qiita.com/hatappi/items/6dee3af8648f21eaaff1
過去に自分で書いた記事がPython2.7でいれた時のものだったのでPython3で動かした時のメモを投稿する

動作環境

今回はVagrantでboxはcentos/7を使用した
https://atlas.hashicorp.com/centos/boxes/7

手順

Python3.6のインストール

前回はソースからインストールしたが今回に関してはpyenvを使う

# 事前にPythonのインストールの際に必要なものをインストール
$ sudo yum install -y git zlib-devel bzip2-devel openssl-devel
# pyenvはinstallerが提供されているのでそれを使用する
$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
# pyenv用のPATHを.bash_profileなどに追記した後に
$ pyenv install 3.6.1
$ pyenv global 3.6.1
$ python --version
Python 3.6.1

これでとりあえずpythonのインストールは完了

MySQL5.7のインストール

$ sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
$ sudo yum install -y mysql-community-server mysql-devel
$ mysqld --version
mysqld  Ver 5.7.18 for Linux on x86_64 (MySQL Community Server (GPL))
$ mysql --version
mysql  Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper

接続確認のために

$ sudo systemctl start mysqld
$ cat /var/log/mysqld.log | grep  'A temporary password is generated for'
2017-05-06T08:15:01.618375Z 1 [Note] A temporary password is generated for root@localhost: hogehoge
$ mysql -u root -phogehoge # 先程grepされて表示されたパスワードを入力

これで接続確認は終わりで今後使用するairflowというdatabaseを作成しておきます

Airflowのインストール

installする時のコマンドは下記のみ
シンプルで良いですね
[mysql, celery]はairflowと一緒にインストールサブパッケージでここで一覧を見ることが出来ます

pip install "airflow[mysql, celery]"

Airflowの設定

Airflowはデフォルトでは~/airflow/airflow.cfgを読み込むのでgithubからテンプレートをもってきて下記の部分を変更します

~/airflow/airflow.cfg
executor = CeleryExecutor
sql_alchemy_conn = mysql://[usr名]:[password]@[host]:[port]/[db名]
broker_url = sqla+mysql://[usr名]:[password]@[host]:[port]/[db名]
celery_result_backend = db+mysql://[usr名]:[password]@[host]:[port]/[db名]

この後に下記のコマンドで動作に必要なテーブルなどを作成して準備完了

$ airflow initdb

webserver

$ airflow webserver -p 8080

image.png

worker

$ airflow worker

これでひとまず動くようになりました

image.png

 おまけ

 worker起動時のエラー

[2017-05-06 04:50:43,790] {__init__.py:57} INFO - Using executor CeleryExecutor
Traceback (most recent call last):
  File "/home/vagrant/.pyenv/versions/3.6.1/lib/python3.6/site-packages/kombu/transport/__init__.py", line 53, in resolve_transport
    transport = TRANSPORT_ALIASES[transport]
KeyError: 'sqla'

が出た
Celeryの4.0.2ではどうやらエラーが出るようでcelery==3.1.15にdowngradeして動くようになった

5
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
9