双六工場日誌

平凡な日常を淡々と綴ります。

Hadoop Conference Japan 2014 参加メモ(個別セッション①) #hcj2014

Hadoop Conference Japan 2014 参加メモ(キーノート) #hcj2014 の続きです。

続いて、個別セッションの前半。先は長い。。。

個別セッション

BigQuery and the world after MapReduce

  • Speaker: 佐藤一憲 (Google

    • GCPサポート
    • GCP solutions design
    • Docker/GCP meet up
  • Google I/O で、GoogleMapReduceを使っていないという話があった

  • We use Dremel ≒ Google BigQuery(MPP)

    • 68B records in ~20 secs
    • 120億行フルスキャンで10秒ぐらい
    • コスト
      • Storage 0.026/GB per manth
      • Query: $5/TB
    • Column Oriented Storage
  • HDFSの元となったGoogle File Systemも現在は使っていない

    • Colossus The next generation Google File System
      • Tail Latency が低い -> レスポンスが遅いノードに引きずられない
  • Google BigQuery

    • Scanning 1 TB in 1 sec takes 5000 disks

    • 処理

      • Mixer -> Shards -> Mixer
    • JOINの方式

      • Small JOIN: Broadcast JOIN
      • Big JOIN: JOIN EACH, GROUP EACH -> Shuffle
        • 608M x 38M records -> 90s
    • BigQuery streaming

      • 1M rows/s を格納可能
      • Fluentd Plugin bigquery がこれに対応していて、データを流し込める
  • Google I/Oで発表された今後実装予定の機能

    • Connectors for Hadoop

      • GCS Connector
      • BigQuery Connector
      • Datastore(BigTable) Conector
    • BigQuery UDF

      • Input/Output as JSON
      • JS in SQL
      • →簡単な処理はBigQuery単体でできてしまう
    • Google Cloud Dataflow

      • Cloud Pub/Sub
        • Hadoop/Sparkとの連携を予定
        • 1 vs 1M の pub/subも作れる
      • Batch/Streamingを一つのコードでやってしまう
        • Google Flume + MillWheel On GCE
          • -> Paperが出ている
        • PipelineをJavaの数珠つなぎで書く
          • 内部で最適化される
  • QA

    • Fluentdで今後チャンクにIDをつけるようにする。インターネット経由だと重複は結構ある。Googleへのデータ送信時に、そういう重複排除の仕組みは提供されるか。

      • 現状はない。インポートしてもらって、Group BYで重複を排除してもらう等が必要。
      • Exactly Onceに関しては、Google I/Oでも質問があって、Dataflowの中ではできている。
    • BIツールから直でつないで使うのか、スプレッドシートに書きだすのか、どちらの使い方を想定しているか

    • 大きなデータでクエリが走らないのは?

      • おそらくソフト的なクォータ設定で止まっている。
      • サポートを購入してもらうと制限を外せる
      • Reserved Capacityというメニューがある
    • クエリの結果の整合性は?

      • トランザクションはサポートしていないし、スナップショットとしての整合性も保証していない

Hivemall: Apache Hiveを用いたスケーラブルな機械学習基盤

f:id:sechiro:20140708140255j:plain

  • Hivemallは、Hive上で動くOSS機械学習ライブラリ

    • HiveのUDF、UDTFで実装されており、Hiveに慣れていれば、追加の学習コストが少ない
    • 学術研究の結果をいち早く取り込んでいる
    • イテレーションを回すとHadoopは遅くなるので、イテレーション減らす実装としている

    • 既存ツールはプログラムが必要

      • すべてのステップがHiveQLで実行可能
        • add jar
        • source のみで実行可能
    • 特徴数の削減をサポートしている

      • 学習時やテスト時に予測モデルをメモリに収める必要がない。
    • EMRに自動構築するBootstrapを提供している

    • 最新のオンライン学習アルゴリズムをサポート

      • CW、SCW、AROWをサポート
      • 学習の収束が高速
      • 10イテレーション→2, 3イテレーション
      • オンライン学習で精度がよい

        • confidence weighted
          • 重みと確信度を更新する
          • 確信度が十分な重みについては、小さな更新。学習初期は大きな更新。
      • UDAF(集約関数)での機会学習

      • 反復学習は、HDFSを介するのがボトルネック

        • Sparkは担当領域を各ノードでキャッシュするので今後のバージョンで高速化する可能性がある
        • SparkのMLlib はサンプリングを利用したMini-batch勾配降下法
      • Hivemall

        • amplify UDTFでデータを増幅してShuffle
        • rand_amplify UDTFでデータを増幅してMap Only Shuffle
      • KDD Cup 2012 Track2データセットベンチマーク

        • VM, Bismarck, Spark MLlib 1.0と比較して学習時間が短く、予測精度がよい。
      • Apache incubator化の打診がある。Hortonworksから打診を受けている。

  • QA