バツイチとインケンのエンジニアブログ
プログラムやプログラムじゃないこと

Apache SparkのWebUI、いろいろ比較してみた

2015-08-13
書いた人 : バツイチ
カテゴリ : Spark | タグ : Apache Spark, jupyter, spark-notebook, zeppelin

Sparkを実行できるWebUIをいくつか比較してみました。
対象としたのは下記の3つです。

  • Apache Zeppelin
  • pyspark + Jupyter(iPython Notebook)
  • spark-notebook

Spark付属のSpark Web Interfaceは実行状況のモニタリングやRDDの状態が可視化されていて非常に便利なものなのですが、上記とは毛色が異なるため今回比較対象に入れていません。
Hueのnotebookやdatabricks cloudに関してはまた今度。。。

まずはそれぞれの概要を少しご紹介します。

Apache Zeppelin

zeppelin_1

Apacheが作っているnotebook形式のWeb UIで、対話型実行ができます。
この記事を書いている時点での最新バージョンは0.6.0です。

zeppelin_2

Scala, Python, SQL(Spark), SQL(Hive), Markdown, Shellなどが実行でき、簡単なグラフ表示も行えます。

zeppelin_3

pyspark + Jupyter(iPython Notebook)

jupyter_1

iPythonが3.0から多言語(プログラミングの)に対応して進化しました。これがJupyterです。
バージョン4.0からは完全に多言語対応したJupyterのみのリリースになるそうです。

Jupyterがサポートするカーネルは下記にまとまっていました。
IPython kernels for other languages
Scalaも当然サポートされています。

pythonユーザには嬉しいiPythonですが、pysparkにオプションを付与して実行するだけで、
簡単にSparkにnotebookを提供するiPythonを起動できます。

jupyter_2

当然、numpyやpandas, matplotlibなどのpythonライブラリが使えるので、非常に便利です。

jupyter_3

pyspark + iPythonの便利さについてはこちらの記事にも書きました☆彡
SparkをMesosで冗長化させてIPython notebookから弄る

spark-notebook

spark-notebook_1

この記事を書いている時点での最新バージョンは0.6.1です。
作った方はLearning Play! Framework 2の著者でSpark Summit 2015 EUROPEで登壇されるAndy Petrella氏です。

spark-notebook_2

非常にiPythonと似た仕上がりです。
が、Andy Petrella氏らしく、中身はPlay Frameworkです。
デフォルトでD3.jsがロードされるようになっており、多彩なグラフ描画が可能となっています・

spark-notebook_11

最近このブログにもレビューを書きました。
spark-notebook使ってみた


機能比較

機能比較表を作ってみました。

機能/プロダクト Apache Zeppelin pyspark + Jupyter spark-notebook
apache_zeppelin jupyter spark-notebook
対応Sparkバージョン 1.1.x〜最新 0.8.0〜最新 1.2.0〜最新
対応言語 Scala, Python, Markdown, SQL(Spark, Hive), Shell
自分で増やせる
Python, Scala, Haskell, Matlab, R, Julia等々49種類。 Scala, SQL, JavaScript, Shell
YARNクラスタ対応 ◯ ◯ ◯
Mesos対応 ◯ ◯ ◯
Tachyon対応 ◯ ◯ ◯
ビジュアライゼーション 独自js。
・テーブル表示
・棒グラフ
・折れ線グラフ
・パイチャート
をピボット表示可能。
matplotlibで割りと何でも。 D3.js。
・テーブル表示
・棒グラフ
・折れ線グラフ
・パイチャート
・地理情報
・グラフ(ネットワーク)
などは手軽に描画可能。
Sparkとのバインディング方法 jettyベースのjavaサーブレットでSpark接続 py4j(pyspark) akkaベースのPlayでSpark接続
依存解決 notebook上でjarをロードできる
z.load(“groupId
:artifactId:version”)
Sparkクラスタに依存モジュールを全配布して再起動 notebook上でjarをロードできる
:dp org.bdgenomics.adam % adam-apis % 0.16.0
デメリット ・ビジュアライゼーションが弱い(多量データでブラウザが死ぬという話もある)
・一度実行しないとnotebookに変更が保存されない
・Sparkが動くかどうかはpyspark/py4jのでき次第。
・ジョブ実行時の進捗状況がわからない
・対応言語が少ない
・ジョブ実行時の進捗状況がわからない
メリット ・ジョブ実行時の進捗状況が表示される
・たいてい動く
・きちんとメンテナンスされている
・Apache Foundation
・Jupyter自体は非常に安定
・統計・数理計算に強いPythonライブラリがそのまま使える
・サンプルがたくさんある
・D3.jsで多彩なグラフ描画

ご参考までに。

このエントリーをはてなブックマークに追加
Tweet

← Youtuberやってみた
ReactNativeでTodoアプリ作るを動画にしました →

 

最近書いた記事

  • Ryzen7 3800XT でmini ITXオープンフレームPCを作る
  • Pythonで機械学習入門 競馬予測
  • HP ENVY 15 クリエイターモデルレビューとRAID0解除
  • JRA-VAN データラボを使って、競馬データを収集する
  • Surface Pro 3 にubuntu18.04を入れる

カテゴリー

  • Android
  • Apache Flink
  • API
  • AWS
  • bazel
  • BigQuery
  • Cassandra
  • Docker
  • Druid
  • Elasticsearch
  • Git
  • Golang
  • gradle
  • HDFS
  • JavaScript
  • jvm
  • Linux
  • MongoDB
  • MySQL
  • Nginx
  • Nodejs
  • PaaS
  • PHP
  • Python
  • RabbitMQ
  • Raspberry Pi
  • React Native
  • Redis
  • Riak
  • rust
  • scala
  • Scheme
  • SEO
  • solr
  • Spark
  • spray
  • Sublime Text
  • Swift
  • Tableau
  • Unity
  • WebIDE
  • Wordpress
  • Youtube
  • ひとこと
  • カンファレンス
  • スケジューラ
  • マイクロマウス
  • 広告
  • 技術じゃないやつ
  • 株
  • 機械学習
  • 競馬
  • 自作キーボード
  • 自然言語処理

アーカイブ

  • 2021年4月
  • 2021年2月
  • 2021年1月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年5月
  • 2018年3月
  • 2018年2月
  • 2017年9月
  • 2017年8月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年1月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年8月
  • 2015年6月
  • 2015年5月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年9月
  • 2014年6月
  • 2014年5月
  • 2014年3月
  • 2014年2月
  • 2014年1月
  • 2013年12月
  • 2013年11月
  • 2013年10月
  • 2013年9月
  • 2013年8月

書いた人

  • バツイチちゃん
  • インケンくん

このブログについて

エンジニアとしての考え方が間逆な2人がしょーもないこと書いてます。

バツイチ

アイコン

IT業界で働くエンジニアです。名前の通りバツイチです。
理論や抽象的概念が好きだけど人に説明するのが下手。

インケン

アイコン

バツイチちゃんと同じ業界で働いています。
理論とか開発手法とかは正直どうでもよくて、
生活する上で役に立つことに使いたい

Copyright 2025 バツイチとインケンのエンジニアブログ