2015年6月15日から17日にかけてサンフランシスコで開催されたSparkSummit2015へ行ってきました。
セッションの全スケジュールはこちら↓です。
6月24日以降に全スライドが上がるとのことでした。
今年のSparkSummitで私が特に面白かったのは下記の5つです。
- Spark Community Update
- Making Sense of Spark Performance
- From DataFrames to Tungsten: A Peek into Spark’s Future
- How Spark Fits into Baidu’s Scale
- A More Scalable Way of Making Recommendations with MLlib
どんなセッションだったのか少しづつ紹介させて頂きます。
Spark Community Update
DatabricksのCTO、Matei ZahariaさんとDatabricksのco-founderでSparkのPMCメンバーのPatrick Wendellによるキーノートです。
Spark1.5の目玉機能の紹介がメインでした。
- R言語サポート(これは1.4+から搭載ですが)
- プロジェクトTungsten
- MLのPipeline
このキーノートでは、データ・サイエンティストにストレスなくデータ分析を行えるインターフェイスを提供したいという思いが何度も語られていました。
Making Sense of Spark Performance
Making Sense of Spark Performance
スピーカーのKay Ousterhoutさんはscheduler周りのコミッターでUC BerkeleyのPhDです。
Sparkのジョブを、ネットワーク待ち時間、ディスク・リード時間、メモリ・リード時間、CPU処理時間に分けてベンチマークをとったところ、意外とCPUがボトルネックになっていた、という話でした。
CPUがボトルネックになるのはどこかというと、シャッフル・フェーズでのシリアライズです。
このあたりは昔から変わらないものですね。
ベンチマークの取り方も、CPUがボトルネックだったことも面白かったです。
ここで発表された内容は論文としても提出されており、USENIXで閲覧可能です。
Making Sense of Performance in Data Analytics Frameworks
From DataFrames to Tungsten: A Peek into Spark’s Future
From DataFrames to Tungsten: A Peek into Spark’s Future
PMCメンバーでsparkの主要コミッターであるReynold Xinさんによる2日目のトップバッター・キーノート。
下記3つのお話がとても印象的でした。
- LogicalPlanのおかげでSparkSQLにシンプルなフロントエンドを提供し続けられている
- RDDの実行パフォーマンスはpythonよりscala/javaのが良いのだけれど(当然)、DataFrameを使うとこのパフォーマンス差をほぼ近似できる
- Runtime code generation
特にRuntime code generationは、SQL構文解析にパーサコンビネータを用いずに直接バイト・コードを生成するのみならず、シャッフル・フェーズでのバイナリ・データをwire-protcolに変換する局面への適用も考えているそうです。先のMaking Sense of Spark Performanceで発表のあったシリアライズにおけるCPUボトルネックの解消になりそうです。
How Spark Fits into Baidu’s Scale
How Spark Fits into Baidu’s Scale
スピーカーのJames PengさんはBaiduの第一アーキテクト。
BaiduによるSparkの利用のお話でした。
Baiduでは1,000個のSparkクラスタと13,000個のHadoop MapReduceクラスタを運用しているそうで、規模大きさが圧巻です。
将来的にはFPGA+GPU上でSparkを動かしたいそうです。
A More Scalable Way of Making Recommendations with MLlib
A More Scalable Way of Making Recommendations with MLlib
PMCメンバーでspark、特にMLLibの主要コミッターであるXiangrui MengさんによるMLlibのモデルのスケール実装のセッションでした。
データを各ノードで分割計算した場合、非線形アルゴリズムの予測精度が下がるのは既知の事実です。
しかし彼はALS実装の過程で予測精度を下げずに分割を可能とする工夫をし、どのようにそれを実現したかをお話されていました。
詳細は彼の論文をご覧ください。
xiangrui.pdf
MLlibの各モデルごとに精度を下げない実装をしているか、スケール可能な実装をしているか異なってくるので、使う前に対象モデルについて良く知らないとだめだなと思いました。
まとめ
今年のSparkSummitではTungstenに関するセッションが多く見られ、いかにTungstenプロジェクトに力を入れているかが伺えました。
昨年私はSparkを使っていて、「Sparkのジョブ実行状態を見ることができるUIが足りない」と感じていたのですが、そこを救うような製品が出ていたりSpark自体のUIもグレードアップしていました。
Sparkの進化の早さを感じると同時に、使い手が不足を感じる部分にはビジネス・チャンスもあって、そこに対するソリューションをエンジニアリングで出せるようなエンジニアになりたいものだと思いました。
SparkSummit2015の内容はTwitterでハッシュタグ#SparkSummitを検索すると概要がわかるかと思います。
Out of Spark Summit
おまけですがセッション以外の様子をご紹介します。
今年の会場はヒルトン・サンフランシスコ・ユニオンスクエアでした。
まずはヒルトンのプラザAでレジストレーションを行います。
レジストレーションを済ませると参加証とTシャツがもらえます。
Tシャツを受け取って奥に進むと、配布用のアジェンダが置いております。
珍しいくらいちゃんとしたアジェンダです。
セッションは朝9:00〜なのですが、7:00には会場が開いており朝食が用意されていました。
スポンサー・ブースの中央にDatabricks。
O’Reillyブースでは著者サイン本プレゼントもやっていました。
ランチはランチボックスです。
サンドイッチがアメリカンサイズ・・・食べきれない・・・(;´д`)…
午後のセッションの休憩時間にはこんなアメリカンなスイーツも。
いろいろな意味で満喫したSparkSummit2015でした。
サンフランシスコ観光はこちら(by インケン)