Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

NetflixにおけるPresto/Spark活用事例

5,338 views

Published on

Hadoop/Spark Conference Japan 2016でのライトニングトークの資料 by Ryosuke Iwanaga (@riywo)

Published in: Technology
  • Be the first to comment

NetflixにおけるPresto/Spark活用事例

  1. 1. 1 NetflixにおけるPresto/Spark活用事例 2016/02/08 Ryosuke Iwanaga Solutions Architect, Amazon Web Services Japan
  2. 2. 2 Amazon EMR - 1クリックでHadoop/Spark • 分散処理基盤 – クラスタを簡単に構築 して破棄 • 分散処理アプリ – 使いたいアプリを選ぶ だけ • Hadoop 2.7.1 • Hive 1.0.0 • Pig 0.14.0 • Mahout 0.11.0 • Oozie 4.2.0 • Spark 1.6.0 • Presto 0.130 • Zeppelin 0.5.5 • Hue 3.7.1更新の速い(ほぼ月1ペース) ディストリビューション
  3. 3. 3 Amazon EMR - 1クリックでHadoop/Spark • 分散処理基盤 – クラスタを簡単に構築 して破棄 • 分散処理アプリ – 使いたいアプリを選ぶ だけ • Hadoop 2.7.1 • Hive 1.0.0 • Pig 0.14.0 • Mahout 0.11.0 • Oozie 4.2.0 • Spark 1.6.0 • Presto 0.130 • Zeppelin 0.5.5 • Hue 3.7.1
  4. 4. © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Eva Tse and Daniel Weeks, Netflix October 2015 BDT303 Running Presto and Spark on the Netflix Big Data Platform
  5. 5. Netflixで鍵となるビジネス上のメトリクス 6500万人以上 の会員 50の国 1000以上の デバイス をサポート 100億 時間 / 四半期
  6. 6. 我々のBig Dataの規模感 トータル ~25PB のデータウェアがAmazon S3に 読み出し ~10% (データ/日) 書き込み ~10% (読み出しデータ/日) ~ 5500億イベント/日 ~ 350のアクティブなプラットフォームユーザ
  7. 7. Amazon S3をデータウェアストレージとして使う Amazon S3を唯一の正しいデータソースに(HDFSではなく) イレブン9の耐久性と99.99%の可用性が設計されている コンピュートとストレージを分離 鍵となる追加機能 - 複数の多様なクラスタ - Red-Blackデプロイで簡単に更新 S3
  8. 8. 分析 ETL 対話的なデータ探索 対話的なデータスライス リアルタイム分析、機械学習、他にも 異なるBig Dataの処理要件
  9. 9. なぜ我々はPrestoを愛しているか? Hadoopとの親和性 - Hive metastoreとの連携 AWS上で動かしやすい - Amazon S3と簡単に連携 スケーラブル - ペタバイトの規模で動作する ユーザが使いやすい - ANSI SQL オープンソース - Java! 高速
  10. 10. 利用状況の統計 ~3500 queries/day > 90%
  11. 11. 我々のデプロイ Version 0.114 + いくつかのパッチ + 1つの未公開パッチ (Parquet vectorized read integration) Amazon EMRのBootstrap Actionでデプロイ Hadoop YARNのクラスタとは別のクラスタ Hadoopのサービスは使わない Amazon EMRをクラスタ管理機能として活用
  12. 12. 2つの本番クラスタ リソースを隔離 Ad-hocクラスタ 1 coordinator (r3.4xl) + 225 workers (r3.4xl) アプリケーション専用クラスタ 1 coordinator (r3.4xl) + 4 workers + dynamic workers (r3.xl, r3.2xl, r3.4xl) Netflix spinnaker APIで、動的にクラスタサイズを変更
  13. 13. 動的なクラスタサイズ変更
  14. 14. なぜSpark? バッチジョブ (Pig, Hive) • ETLジョブ • レポートや、その他分析 対話的なジョブ (Presto) 対話的な機械学習ジョブ (Spark) プログラムが必要なユースケース
  15. 15. デプロイ @ Netflix Spark on Mesos • 独自のAMI • 全てBDAS (Berkeley Data Analytics Stack) • オンラインストリーム分析 Spark on YARN • Spark as a service • Amazon EMR上のYARNのアプリケーション • オフラインのバッチ分析
  16. 16. マルチテナント
  17. 17. Dynamic Allocation [SPARK-6954]
  18. 18. 複数バージョンをサポート $ spark-shell –ver 1.5 … s3://…/spark-1.4.tar.gz s3://…/spark-1.5.tar.gz s3://…/spark-1.5-custom.tar.gz s3://…/1.5/spark-defaults.conf s3://…/h2prod/yarn-site.xml s3://../h2prod/core-site.xml … 設定アプリケーション
  19. 19. 22 Summary • Amazon EMR + Amazon S3 – コンピュートとストレージを分離 – 25 PBのAmazon S3のデータをAmazon EMRのクラスタから操作 • Presto at Netflix – インタラクティブ用途、90%のクエリが1分未満 – Amazon EMRで構築、動的なサイジングも • Spark at Netflix – 機械学習バッチ、YARNでマルチテナント、Dynamic Allocation – Amazon EMRのYARNに、任意のバージョンのSparkで実行
  20. 20. 23

×