読者です 読者をやめる 読者になる 読者になる

「初めてのSpark」刊行記念 Spark Meetup 2015に行ってきた

だいぶ前になりますが、9/9に行われたSpark Meetup 2015に行ってきました。その時のメモです。

cloudera.connpass.com

「初めてのSpark」刊行のご挨拶

  • Advanced Analytics with Sparkを今年中には訳し終えたい。
  • 「初めてのSpark」でカバーできていない範囲
    • 運用面
    • 具体的なアプリケーション
    • SparkR

Apache Spark: Usage and Roadmap in Hadoop

資料: Apache Spark: Usage and Roadmap in Hadoop

  • SparkはMapReduceを置き換えるものになるだろう。
  • Spark / impala / solr / MapReduce の違い
  • Hive on Spark (beta)
  • Pig on Spark (alpha)
  • ユースケース
    • 病気に影響する遺伝子の特定
    • 文字認識(分類問題)
    • 不正検知
  • Sparkのメリット
    • 豊富で簡単なAPI
    • インタラクティブシェル
    • バッチでもストリーム処理でも使えるAPI
    • 高速なバッチやストリーム処理ができる
  • 今後注力していくところ
    • スケール: 10,000 ノード クラスターを可能に
    • ストリーミング: 一般的なストリーミング処理のうち80%をまかなえるようにする。

Sparkコミュニティに飛び込もう!

資料: Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015 講演資料、NTTデータ 猿田 浩輔)

  • コミュニティ活動していて思うこと
    • 日本人が少ない
      • 最近は少しずつ増えてきているし、今日のイベントの注目度高いから今後に期待
  • コミュニティに関わっていこう!
    • 安定性・運用面などの細かい改善を活かせてほしい
    • ドキュメントの修正だけでも
    • メーリングリストでの情報交換、Issue登録など
  • 秘蔵のパッチ当てはやめよう
    • アップデートやトラブルシューティングが困難
    • パッチ自体に問題がある可能性があるのでレビューを受けた方が良い
  • Issue登録はJIRA、パッチはgithubでプルリク
    • タイトルはひと目でわかるものを。
  • 気をつけること
    • コードに影響の無い変更ばかりをプルリクする
    • でかいパッチ
    • 人を非難するのはだめ
  • 7月にTokyo spark meetupがあった
  • コミュニティと双方向で関わろう!
  • Spark 1.5の新機能
    • Web UIにメモリのピークが表示されるようになった
    • SQLの実行計画が可視化された
    • Tungsten・・・独自のメモリ管理システムがデフォルトで有効になった
    • SQLのコード自動生成のコンパイル時間が短くなった
    • Streamingにバックプレッシャー機能が追加
    • ML pipelineがサポートするアルゴリズムを追加

初めてのSparkStreaming 〜Kafka+SparkStreamingの紹介〜

資料: 初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜

  • YARN上でSpark動かしている
  • DStream ・・・Streamデータをn秒分に区切ってRDDを作り、それをまとめたもの
  • API → Kafka + SparkStreaming → Kafka → View, HBaseの構成
  • 行動解析
    • 行動ログのみを扱っている。
    • StreamingでUU、PV、PVの移動平均
  • SparkStreamingのパフォーマンス・モニタリング
    • Web UI上のStreamingタブ
      • 75% percentileがBatch intervalを超えると処理が追いつかなくなる
    • Spark 1.3でkafkaのdirectStreamを使うとReceiverStatisticsが出ない
    • spark-submitでjarを投げるとexecuterが2個できる。CPU coreとexecuterの数が同じくらいになるように調整するとよい。

Spark、AMPLab、および周辺のビッグデータ基盤

  • AMPLab
  • BDAS
    • Berkeley Data Analytics Stack
  • Splash・・・確率的勾配法 Velox・・・学習されたモデルによるサービス
  • MLbase
  • SparkでDeep learningは?
    • 合わないと思う。
  • NECの画像解析
    • 2人乗りバイクの自動検知・・・2人乗りはひったくりの予兆

レコメンドバッチ高速化に向けたSpark, Mahoutの

資料: レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証

  • バッチの長時間化と数の増加
    • バッチの多様化・データ量の増加
  • MahoutがMapReduceからSparkに移るので検証。
  • Spark MLlib vs MapReduce Mahout
    • 実行時間とレコメンド精度
      • 実行時間を主に。レコメンド精度は変わってないことの確認。
    • アイテムベース協調フィルタリングはMLlibに実装がないので、新規に作ったもの。洗練されたものではない。
    • アイテムベース協調フィルタリング
      • 繰り返し処理はない
    • ALS協調フィルタリング
      • 繰り返し計算が多い
      • 評価値行列をユーザー特徴量行列とアイテム特徴量行列に分解して計算
    • アイテムベース: SparkはMahoutの1/5の時間 23分 → 5分
    • ALS: 1/32の時間 3時間42分→7分へ。
    • f値は一致しないが、ほぼ同じ値
    • Spark / Mahoutともにノード数増加に応じて実行時間が短縮

はじめてのSparkR

資料: はじめての SparkR - Spark Meetup 2015

  • SparkR ・・・SparkからR言語から使うパッケージ
  • AMPLabが開発
  • DataFrameの操作に特化(RDD非対応)
  • dplyrライクにデータハンドリング
  • シェルから立ち上げるのも良いが、RStudioでlibraryをインポートするのがおすすめ。