19
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Retty Inc. Advent Calendar 2018

Day 19

Airflow tutorial解説入れながらやってみた

Last updated at Posted at 2018-12-19

これはRetty Inc. AdventCalendar2018 19日目の記事です。
昨日は@masadooonさんのRettyの意思決定を最大化!データ分析チームの取り組みをご紹介でした。

はじめに

Rettyでインターンをしているものです。
Rettyではluigiを集計に使用しているサービスがありますが、分析基盤ではAirFlowを使用していることもあり統一しようとしています。
現在インターンでの業務としてAirflowに移行できるかどうかの検証を行っており、まず理解するためにAirflow Tutorialをやっていましたので解説していきたいと思います。

Airflowとは

  • 言語 : Python
  • Airflowは、ワークフローを記述、実行、監視するためのツール
  • タスクの依存関係を管理

Airflow Tutorial 実践

公式
https://airflow.apache.org/index.html
Tutorialに書いてある通りsetupしていきます

Python 環境構築

まずアップデートします
$ apt-get -y update

pipをインストールします。
$ apt-get install python-pip

インストールしたpipをupgradeします。
$ pip install --upgrade pip

Airflow 構築

パスを通します
$ export AIRFLOW_HOME=~/airflow

airflowをインストールします。
$ pip install apache-airflow

構築時に起きたエラー 1

出なかった場合読み飛ばしてください

事象

$ pip install apache-airflow
File “/usr/bin/pip”, line 9, in <module> from pip import main ImportError: cannot import name main

対応策
vim をインストールします。
$ apt-get install vim

ファイルの一部を書き換えます。
$ vi /usr/bin/pip

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

構築時に起きたエラー 2

出なかった場合読み飛ばしてください

事象

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-xg1yeW/apache-airflow/

対応策
公式でも同じようなことが書いてあります。
https://airflow.apache.org/installation.html

$ export AIRFLOW_GPL_UNIDECODE=yes

Airflow起動

データベース初期化
$ airflow initdb

Webサーバー起動
$ airflow webserver -p 8080

起動時に起きたエラー

出なかった場合読み飛ばしてください

事象

Traceback (most recent call last):
  File "/usr/local/bin/airflow", line 28, in 
    args.func(args)
  File "/usr/local/lib/python2.7/dist-packages/airflow/bin/cli.py", line 791, in webserver
    gunicorn_master_proc = subprocess.Popen(run_args)
  File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

対応策
gunicornコマンドがないようなのでインストールしたいと思います。

gunicornをインストール

$ sudo apt-get install gunicorn

Airflow

http://localhost:8080 へアクセスすると
3.png
このように表示されていれば成功です。

次にDAGのtutorialをクリックします
2.png
この画面でツリー表示が見れます。

Codeを次に見てみましょう。
1.png
ここで先ほどのワークフローがどのようにできているのかを確認できます。

最後に

ここまでで、Airflow Tutorialのための導入を実際に行ってみました!
今後は実際の業務に繋げていき、本格的な開発を頑張って行きます!

以上、ありがとうございました。

明日は@takumi-suzukiさんです!

19
8
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
19
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?