Strata + Hadoop World参加記録 その4

今日は自分的に楽しそうなセッションが盛りだくさんですね。メモはけっこう適当です。

Big Data at Netflix: Faster and Easier

  • バックエンドにHDFSは使っておらずS3を利用している
  • 400 Billion Events / Day
    • ビデオの再生とかUIに対するアクションとか
  • Data Platform(High level)
    • Cassandraをハードに使っている
    • Python/Pigでデータ処理
    • クエリはPresto
    • Stingとか色々、BIもかなり使っている
  • Why Presto (vs. Alternatives)
    • バックエンドはS3
    • オープンソースJavaだし、あと、アカデミックなプロジェクトではなく、Facebookが実際に使っているので未来がありそう
  • Spark
    • 良い所
      • 2013年から使ってるけど当時はイマイチだった
      • 限定的な状態ではあるがproductionで使われている
      • 関連プロダクトがぎゅっと集まっている
      • パフォーマンス(Sparkは100倍といわれているがそこまでではない)
      • コミュニティ
      • 未来がありそう
    • 悪い所
      • まだ歴史が浅い
      • マルチテナンシーがない
      • shuffling
      • ハイレベルなAPIのためチューニングがやや困難
      • その他あれこれお
  • Streaming Processing
    • 一貫性と可用性
    • LatencyとScaling
    • Storm, Samza, Sparkとあるが何を選ぶべきか。。。
  • Parquet
    • カラムナ型
  • Pig on TEZ
  • Kafka
  • suro
  • druid
  • genie
  • inviz
  • lipstick
  • metacat
  • Bigdataportl
  • Kragle

  • Netflixのculture

全てはカルチャーのなせる技な気がしました。

Tuning and Debugging in Apache Spark

f:id:rindai87:20150221184137j:plain

席がうまく確保出来ず、メモを取る余裕もありませんでした。パーティションが大事、はとりあえず覚えているのでまた復習的な何かが必要ですね。あとは、やっぱりshuffleがきついのでここをいかに回避するかが一つのポイント、みたいな感じでしょうか?shuffleについては、この日の午後に一つセッションを設けて話されていました。

YARN vs. MESOS: Can’t We All Just Get Along?

f:id:rindai87:20150221184123j:plain

MesosとYarnをmanageするMyriadの話でした。まだまだこれからのプロジェクトだと思いますが、MapRが主導していくとのことなので、個人的にはDrillのように急激に伸びてくるんだろうなぁと思っています。

Everyday I’m Shuffling - Tips for Writing Better Spark Programs

f:id:rindai87:20150221184114j:plain

  • shuffleの話:非効率化の原因
  • driver or workerのどちらでデータを動かすか:エラーの原因
  • Reduce By Key vs GroupByKeyの比較
    • 結果は同じ
    • reduceByKeyの方が効率的
    • shuffleの問題から起きる
    • shuffle前に同じキーで処理してからshuffleするのがreduceByKeyだから
  • 大きなテーブルと小さなテーブルの結合(SpqrkSQL)
    • shuffledHashJoin
    • BroadcastHashJoin
      • 小さな方のデータをBroadCastする
  • How to Configure BroadcastHashJoin
    • 1.2から設定できる。
    • Set spark.sql.autoBroadcastJoinThreshold
  • Join a Medium Table with a Huge Table
    • Left Join
      • ...
  • shuffleの問題を見つける
    • main programはDriverで実行
    • transformはworkerで実行
  • collect()を大きなRDDで呼ぶとOOMKillerで死ぬ

と、出来る限りメモリましたが、不完全なことこの上なく。。。同行者の方から、この手の話はgithub上にも公開されてるよー、と教えていただいたので合わせてshareです。

その他

f:id:rindai87:20150221184039j:plain

今日はDatabricksとMapRのTシャツをゲット!Tシャツが累計10枚くらいになりました。。。

というわけで、長いようで短かったようなStrata出張終わりです。色々消化しきれていない部分を早く消化しないとなー、という感じです。余談ですが、Strataへの参加層として、中国人、インド人はすごく多そうでしたが、やはり日本からはほとんど参加されていないんですね。