『詳解 Apache Spark』出版記念イベント #shokaispark 参加レポート

2016.05.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

IT系勉強会ウォッチャーの川崎です。最近、オフィスが秋葉原から岩本町(秋葉原駅から徒歩10分ほど)へ引越しになりました。

今回は、2016年5月11日(水)に開催された 『詳解 Apache Spark』出版記念イベントに参加してきたので、イベントの様子をご紹介いたします。

イベントの内容

『詳解 Apache Spark』出版記念イベント

執筆陣7人によるLT大会が行われました。

ハッシュタグ:#shokaispark

データ分析業界の理想と現実 - Spark普及の歴史を添えて

下田倫大さん(ブレインパッド)1章〜3章担当

  • Spark登場時、夢とロマンを見た
  • 2013年: 大規模データ処理はHadoopで集計
  • 2014年: Sparkと出会う
    • 第一印象: Python、Rのインターフェースがある
  • 2015年: ブレインパッド社としてビジネスモデル的にSparkのメリットが大きくない
    • 分析基盤をお客様に提案する立場では、新しいものの導入が難しい
    • ニーズが必要
    • DeltaCubeという自社プロダクトで導入
    • 効率化からイノベーションへ

データマネジメントツールDeltaCubeでのSpark利用

師岡一成さん(ブレインパッド)1章〜3章担当

  • DeltaCube: DMP(データ・マネジメント・プラットフォーム)のデータから、セグメントを作成するツール
  • 初期:2014年〜
    • 行動ログを手動で検索→セグメント作成
    • Impara、Prestoを使った
  • 中期:2015年〜
    • 元々機能的にマニアック
    • 広告運用の手間がかからないライト路線のニーズあり
    • 一連の流れを自動化
    • DeltaCube自動でユーザをクラスタリング
    • RToaster自動でABテストして最適化
    • Sparkのメリット
      • ETL、集計、機械学習が同一のプラットフォームでできる
  • 現在
    • YARNとPrestoの併用は止めたいが、統一できず
    • Sparkはディスク書き込み処理がある
    • オンラインからの検索性能でPrestoに軍配
    • オンライン系:Presto
    • バッチ系:Spark
  • まとめ
    • Sparkの導入は、標準コンポーネントが多数あり、MapReduceに比べ敷居が低い
    • Spark もっと流行って

Dynamic Resource Allocation in Apache Spark

今井雄太さん(Hortonworks)4章担当

Dynamic Resource Allocation in Apache Spark

 

 

  • Sparkとの出会い
  • Amazon KinesisのConsumerとして
    • Spark Streaming
    • アプリ開発者に優しい
    • コードわかりやすい(scalaのword countの例)
  • Sparkの運用の話
  • 1.RDD Graph
    • 分散処理を気にせず書ける
  • 2.DAG Scheduler
    • RDDのオブジェクトは見た目は配列
    • ノードのメモリ上に保持されている配列、のオブジェクト
    • たくさんのノード上で、データが分散保存されている
    • taskとjob
  • 3.DYNAMIC RESOUCE ALLOCATIONという機能の話
    • 動的に足す
    • 不要なものを削除する

Help me! Help me with DNN in Spark!!

石川有さん(リクルートテクノロジーズ アドバンステクノロジーラボ)5章担当

  • Spark2.0向けにDNNの機能追加(Auto encoder)は見送り
  • Help!
  • 現状の確認
    • MultilayerPerceptronClassifier
      • L-BFGS
      • Sigmoid、Softmaxのみ
    • 問題
      • Regression対応のために最適化アルゴリズムとの依存関係を見直す必要性
      • SGDは非効率で精度が悪い
      • Google Inception-v3のような複雑なトポロジーを定義できない
      • CNNのような多次元配列のような入力をサポートしていない
      • 線形代数ライブラリbreezeが使いにくいし拡張しにくい
      • 依存関係のため、低レイヤーまで潜っていかないといけない
      • Public APIを変更するには、議論を根気よくやらなければならない
  • 相談にのってもいいよ、という人募集

scalatestでSpark StreamingのUnitを書く話

田中裕一さん(日本IBM) 6章担当

Hadoop/Spark周りで、新しい利用事例をつくる仕事

  • 100万人のデータ分析教育
  • 300億回APIコール/日の事例
  • Spark as a Service
    • Blue mix
    • Jupiterノートブック
    • 30日無償
  • StreamingのUnitテストが面倒なこと
    • アプリ側で状態を保つため、Unitテストが組みづらい
    • Streamingは外部との接続が前提なためUnitが書きにくい
    • 複数のmicro-batchの集計結果などの書き方が難しい(window処理など)
  • 本書での対応
    • やったこと
      • 1Unit側でStream作成
      • 2テストデータを作成してStreamに渡す
      • 3処理結果の出力
    • 処理部分と接続部分は切り分けて書く
  • Unitの組みやすいアプリの形
  • まとめ
    • さくっと書けるけど、構造化しないと汚いコードに

spark.ml の API で XGBoost を扱いたい!

小宮篤史さん(スマートニュース)7章担当

  • SmartNewsのエンジニア
    • 広告オークションの設計
    • 広告配信の最適化
  • 今日のトピック
    • 選択肢2つ
    • XGBoost on Spark
      • 勾配ブースティングの実装の1つ
      • 決定木に対する勾配ブースティングは、MLlibでも実装されている
      • Hagglerな方々を中心に人気がある
      • pure Scala
      • Spark packagesに登録されている
      • どこまで忠実か不明
      • 開発が活発ではない
    • xgboost4j-spark
      • DMLCが提供している公式のSpark integration
      • DataFrame非対応
      • C++実装にお任せ
      • 実装のポイント 31/32/33

Sparkで始めるお手軽グラフデータ分析

加嵜長門(DMM.comラボ) 8章担当

  • Spark Conference Japan アンケート GraphX 30人!
  • グラフ処理系
    • 使いづらさに対するブレイクスルー
    • GraphFrameの登場
    • 正式なSparkには入ってない
  • Spark GraphXとDataFrames(SparkSQL)の統合
  • そもそも、グラフデータとは
    • つながりを表現するデータ構造
    • ER図
    • 路線図
    • Webグラフ
    • 家系図
    • データ構造の1つ
      • 配列
      • 連想配列
      • リスト
      • 関係
      • etc.
  • グラフ構造
    • 隣接行列、縦横で表現
  • それってグラフじゃないとできないの?
    • 他の選択肢もある
    • さまざまなデータ構造や分析手法を活用して、多角的な視点を持つことが重要
    • 直感的にわかりやすい
    • 一長一短だとは思う
  • グラフを使う
    • 口コミを使ったマーケティング
      • 影響力の強いユーザの抽出
      • クラスター分析
  • グラフの活用例
    • 不正検知
      • 偽装保険金詐欺
      • 少人数で何度も事故に巻き込まれている
    • 不正検知
      • クレジットカード詐欺
      • 少人数で、住所や電話番号を使いまわしている
      • 検知が難しかった
    • 「パナマ文書」
      • 多くの会社を流れるお金の流れを分析
  • グラフDB
    • Neo4j Titan
  • グラフ処理系
    • GraphX GraphLab
      • 分散処理による高スループット
      • 耐障害性
    • グラフに特化しない汎用的なデータ構造
    • 表形式やベクトルとシームレスに結合できる

最後に

Developers.IOのSpark関連記事のリンクを掲載しておきますので、よろしければご覧ください。

Apache Spark入門 – シリーズ –

Spark – 特集カテゴリー –