Spark Summit 2014 レポート Day1

_thumb_10300

はじめまして,ATL の石川有です.

ただいま 2014-06-30 から 2014-07-02 まで開催される Spark Summit 2014 に参加しています.さっそく1日目に聴講した発表を簡単にまとめてみました.Spark 初学者にとってウォッチすべきは,キーノートのさわりと Databricks 社が開発中の Databricks Cloud の機能についてだと思います.この記事では,Spark とはなにかという基本的なことについては触れませんのでご了承ください.Spark 自体の説明については,後日改めて記事にしたいと思います.

Spark がなんぞやというのがわからない人にとっては,この記事を読み進めるのが辛いかもしれません。本記事を読む上で抑えるべきことはつぎの2つです.

  • Apache Spark はビッグデータ関連の Apache プロジェクトの中でもっとも活発なプロジェクトのひとつである
  • Apache Spark をメインで開発している Databricks 社は,今後 Databricks Cloud というデータ解析のクラウドサービスを展開しようとしている
  • Spark とは何かについてのさわりは,つぎのスライドにまとめてあります.

  • BdasとSpark概要
  • では以下自分が重要だと感じたセッションについて紹介してゆきます.

    Spark’s Role in the Big Data Ecosystem

  • 発表者:Matei Zaharia (CTO, Databricks)
  • Matei Zaharia さんは,UC Bercley の AMPlab で Spark を作り始めた人です.Spark のコアである Resilient Distributed Databricks (RDD) を考案し,Scala で Spark を実装しました.RDD についての説明は,Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing が非常にわかりやすいです.

    この発表では,Spark の動向について簡単に3つの側面を発表しました.1つは,Spark はビッグデータ関連オープンソースで最も活発なプロジェクトのひとつであること. もう1つは,Spark で最近追加されたコンポーネントについての説明です. 最後に Spark に関するビジョンを話しました.

    まず Spark のコミュニティの成長度合いの指標として 2013 年と 2014 年の比較を引き合いに出しました.2013 年時点で,Contributor は 68 人,企業としては 17 社でした.2014 年には Contributor が 255 人で,企業としては 50 社となっているようです.2014 年5月に version 1.0 がリリースされ,2014 年6月時点で,7つの Hadoop Distributor があり,20 を超える Spark アプリケーションがあります.

    最近リリースされたトピックとしては,大きく分けると2つあるようです.ひとつはセキュリティとモニタリング,そして高信頼性 (HA) の企業で運用する上で必要な性質です.もうひとつは,さらなる Spark のライブラリの拡張です.そのライブラリの中でも特筆すべきことは3つあります.

    3つとは,Shark とはまた違う Spark の中で SQL を扱えるようにするための Spark SQL,Spark 上で機械学習を扱えるようにする MLlib,そしてグラフを扱うための GraphX のようです.Spark SQL は Spark の中で SQL 的にビッグデータを扱える技術です.これによって,エンジニアとしてはよりわかりやすくデータの抽出を行うことができます.たとえば,JSON オブジェクトを簡単に扱えることや SQL の User Defined Function (UDF) を簡単に記述できるようになりました.

    つぎに,Spark 上で機械学習を扱えるようにする MLlib では新たにいくつかの機械学習アルゴリズムが追加されました.たとえば,決定木や SVD,PCA, L-BFGS です.また現在開発中のアルゴリズムは,LDA や non-negative matrix factorization があります.その他には,Spark 上でいわゆるネットワーク分析を行うことができる GraphX の機能が拡張されました.

    おそらくビッグデータ分析を行いたい方にとって Spark に関して最も興味があるであるであろう点は,Databricks が Spark をどのような位置づけにしたいかということだとおもいます.Detabricks としては Spark を様々なことが統一的に行えるビックデータ基盤に育ててゆくつもりのようです.企業におけるデータ分析の側面は,3つに分けられると思います.1つはバッチ処理としての分析することで, 2つめは対話的に,インタラクティブにデータを分析すること,3つめはリアルタイムに,ストリーミング処理としてデータ分析をすることです.これらを統一的に,一貫性を持って Spark で扱えることが直近のゴールだと見受けられました.これらの統一性をオープンソースとして,Databricks 社は Apache プロジェクトとして提供していくようです.

    Apache Spark and Databricks

  • 発表者:Ion Stoica (CEO, Databricks)
  • 石川個人的としては,この発表が今日の中で最もエキサイティングな発表でした.
    Databricks 社としてビッグデータ分析のインフラとして,Databricks Cloud を提供することを考えているようです.
    まだ beta 版のリリースもこれからなようですが,デモを見る限りはとても素晴らしいものでした.

    サービスを実際に提供しているユーザ企業にとっての難しさのひとつは,エンジニアとデータサイエンティストとアナリストがどのようにうまく協力して垣根なく働くかだと思います.その垣根を低くしてくれるのが,Databricks Cloud になり得ると思われます(話半分で…). まだ beta リリースすらされていない状態なので,本当に将来的にどれぐらい期待した機能が得られるかは蓋を開けてのお楽しみですが,デモを見る限りではとても素敵でした.Databricks Cloud の特性をひとことで言えば “Make Big Data Easy” ということのようですが,幾つか取り上げるとつぎになります.

  • (ビッグ)データ分析に必要なバッチ処理,対話的な処理,リアルタイム処理(ストリーミング)処理が Spark で包括できる
  • 必要なクラスタは数秒で用意することができる
  • 動的に Spark のスケールアップ&スケールアウトができる
  • Notebooks というデータ分析をブラウザ上で対話的に,ほかの人と当時に分析の処理を記述できる
  • Dashboard というデータ分析の結果をその言葉のごとくダッシュボートとして保持できる
  • 前3つはその文言だけを聞くと大したことがないような気もしますが,最後の2つは特筆すべき機能だと思います.Notebooks と Dashboards の機能,発想については素晴らしいのひとことです.

    企業におけるデータ解析の難しさはいくつかありますが,大きく分けると2つの側面があって「共有」と「再現性」の問題だと思います.この点については紙面の都合上詳しく説明できません.詳しくは次の記事を参考にしてください.

  • 業務でも使える RStudio + github で作る解析環境のひとつの理想形 – Qiita
  • Notebook ではブラウザ上で Spark / Shark などの処理が記述できます.またその処理には,ストリーミング処理や SQL,機械学習やネットワーク分析などが実行できます.またたとえば実行した SQL は即座に棒グラフや折れ線グラフなどに描画でき,しかもそれが他の人とインタラクティブでリアルタイムに操作を共有できるようです.デモでは確かにリアルタイムコラボレーションとストリーミング処理による描画の数秒単位の更新を見せてくれました.そしてこのような分析結果やストリーミング処理の結果やグラフをダッシュボードとして簡単に保持できるようです.

    そのほかのセッションについては,後日改めてブログに載せたいと思います.