Kekeの日記

エンジニア、読書なんでも

Apache Azkaban, Airflow, Luige, Oozie比較

本記事

Apache Azkaban, Airflow, Luige, Oozieのこれらはワークフロー管理に使われるOSSです。 HadoopやSparkなどを使って分散処理をナイトリーに行なっている場合、そのスケージュールリングだったり監視などが大変になってきます。

そのような中で、ワークフロー管理OSSがあるわけですが、どのようにして選定できるかを比較しながら考えます。

tl;dr

比較表は以下の通り。

OSS名 開発元 目的 主な開発方法 留意点
Azkaban LinkedIn hoge Hadoopのバッジ処理を時間単位でスケージューリングする目的。 GUI  リッチなUIで監視、検索したりすることができる。
Airflow Airbnb 2015 DAGSのようにワークフローをモニタし、認証し、スケージューリングする目的。 Luigeのようにプログラムベース リッチなCLIツールやUIがある
Luige Spotify 2011 複雑なパイプラインを構築することを手伝う。 Pythonスクリプトベース Hadoop Supportがあるが、何もかもに対応しようとしている(Hive, Spark)'。コミュニティが大きい。
Oozie Yahoo 見つけれず Azkabanと同様にHadoopのバッジ処理をスケージューリングする目的。  XMLベース Azkabanが時間単位でスケージューリングするのに対して、時間、イベント、データの状況でジョブをトリガーできる(データがないのにバッジ処理をしてしまうのを防ぐ)。 もっとも古い。

1. Azkaban

1.1 UI

f:id:bobchan1915:20180806212552p:plain

2. Airflow

2.1 UI

f:id:bobchan1915:20180806212903j:plain

3. Luige

3.1 UI

f:id:bobchan1915:20180806212928j:plain

4. Oozie

4.1 UI

f:id:bobchan1915:20180806212753p:plain

結論

Hadoopでしか使わないか、他に使うかで分かれると感じる。

使う場合はAzkaban、他に使う場合はAirflowLuigeでいいのではないでしょうか?

もう一つの考え方としては、「宣言的にかけるかどうか」。

Azkabanは主にGUIなので、同じくプログラムで書きたかったらAirflowLuigeになる。

やっぱり、差があまり感じられないのでテスト運用してみて、感じたことがあれば追記します。