このシリーズ
- Apache Zeppelinでデータ分析を分散処理する - Part 1: データ分析のライフサイクル
- Apache Zeppelinでデータ分析を分散処理する - Part 2: Ambari on DockerにZeppelinをセットアップする
- Apache Zeppelinでデータ分析を分散処理する - Part 3: ZeppelinでHiveを使えるようにする
- Apache Zeppelinでデータ分析を分散処理する - Part 4: Ambari on Dockerのambari-functionsを使ってみる
Apache Zeppelinの特徴
ライフサイクル
Apache ZeppelinはIPython Notebookに代表されるWebブラウザからインタラクティブに使え、データ分析と可視化、重要なレポーティングが1つのノートブックになるツールです。幾つか定義がありますが、データ分析はデータ準備、データの探索、可視化、モデル構築、レポート、運用といったライフサイクルを回す必要があります。レポーティングやコラボレーションも含めて1つのインタフェースで行えるのは魅力的です。
作成したノートブックはZeppelinHubに公開すると共有したり共同作業することができます。新しい技術を勉強するときは誰かの動くコードを真似るのが習得の近道です。
分散処理基盤
SparkとHadoopの分散環境をバックエンドに採用しているため大規模データのインタラクティブな分析に向いています。LINEや、Naver、CloudbreakのSequencIQを買収したHortonworksなどで採用されています。Zeppelinの開発会社で関連のサービスやツールを提供しているNFLabsなど韓国で人気がありそうです。
Alternatives
同じカテゴリーには以下のようなツールがあります。
- IPython Notebook
- RのShiny
- PolyglotなBeaker
- PolyglotなJupyter
- ClojureのGorilla
- Scala Notebook
- PySparkのIPython Notebook
他のツールに比べて大規模の分散処理ができること、最近注目が高まっているMLlibの機械学習ライブラリが使えることが特徴です。個人的にはScalaやSQLで分析したコードと合わせてドキュメントをMarkdownで書けるのがうれしいです。PySparkとIPythonを手動でインストールする手間も省けます。
Hadoopクラスタの管理
SparkとHadoopの面倒な構成管理はHortonworksがAmbariのBlueprintを提供しています。NFLabsのZ-Managerというワンライナーインストールがあるので、最近では比較的簡単にインストールできます。次回はDocker上にAmbari Shellを使ってHadoopクラスタの構築とZeppelinのインストールを試してみたいと思います。
参考
AmbariとZeppelin
- Data Science lifecycle with Apache Zeppelin and Spark
- Introduction to Data Science with Apache Spark
- Ambari service for Apache Zeppelin notebook
- Multi-node Hadoop cluster on Docker
- Install Apache Hadoop And Spark On Docker (aim for cluster)
データ分析のライフサイクル
- ビッグデータは企業に何をもたらすのか?
- 第3章 “CRISP-DM”に基づくデータマイニングの進め方
- 「データのライフ・サイクル」で考えるHadoopの使いどころ
- データサイエンスとその組織化について
- シゴトで使える「データサイエンティスト」に必要なスキルセットってどんなもの?