Apache Zeppelinでデータ分析を分散処理する - Part 1: データ分析のライフサイクル


このシリーズ

Apache Zeppelinの特徴

ライフサイクル

 Apache ZeppelinIPython Notebookに代表されるWebブラウザからインタラクティブに使え、データ分析と可視化、重要なレポーティングが1つのノートブックになるツールです。幾つか定義がありますが、データ分析はデータ準備、データの探索、可視化、モデル構築、レポート、運用といったライフサイクルを回す必要があります。レポーティングやコラボレーションも含めて1つのインタフェースで行えるのは魅力的です。

 作成したノートブックはZeppelinHubに公開すると共有したり共同作業することができます。新しい技術を勉強するときは誰かの動くコードを真似るのが習得の近道です。

分散処理基盤

 SparkとHadoopの分散環境をバックエンドに採用しているため大規模データのインタラクティブな分析に向いています。LINEや、NaverCloudbreakSequencIQを買収したHortonworksなどで採用されています。Zeppelinの開発会社で関連のサービスやツールを提供しているNFLabsなど韓国で人気がありそうです。

Alternatives

 同じカテゴリーには以下のようなツールがあります。

 他のツールに比べて大規模の分散処理ができること、最近注目が高まっているMLlibの機械学習ライブラリが使えることが特徴です。個人的にはScalaやSQLで分析したコードと合わせてドキュメントをMarkdownで書けるのがうれしいです。PySparkとIPythonを手動でインストールする手間も省けます。

Hadoopクラスタの管理

 SparkとHadoopの面倒な構成管理はHortonworksがAmbariBlueprintを提供しています。NFLabsのZ-Managerというワンライナーインストールがあるので、最近では比較的簡単にインストールできます。次回はDocker上にAmbari Shellを使ってHadoopクラスタの構築とZeppelinのインストールを試してみたいと思います。

参考

AmbariとZeppelin

データ分析のライフサイクル