SlideShare a Scribd company logo
1
NetflixにおけるPresto/Spark活用事例
2016/02/08
Ryosuke Iwanaga
Solutions Architect, Amazon Web Services Japan
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
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
© 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
Netflixで鍵となるビジネス上のメトリクス
6500万人以上
の会員
50の国
1000以上の
デバイス
をサポート
100億
時間 / 四半期
我々のBig Dataの規模感
トータル ~25PB のデータウェアがAmazon S3に
読み出し ~10% (データ/日)
書き込み ~10% (読み出しデータ/日)
~ 5500億イベント/日
~ 350のアクティブなプラットフォームユーザ
Amazon S3をデータウェアストレージとして使う
Amazon S3を唯一の正しいデータソースに(HDFSではなく)
イレブン9の耐久性と99.99%の可用性が設計されている
コンピュートとストレージを分離
鍵となる追加機能
- 複数の多様なクラスタ
- Red-Blackデプロイで簡単に更新
S3
分析
ETL
対話的なデータ探索
対話的なデータスライス
リアルタイム分析、機械学習、他にも
異なるBig Dataの処理要件
NetflixにおけるPresto/Spark活用事例
なぜ我々はPrestoを愛しているか?
Hadoopとの親和性 - Hive metastoreとの連携
AWS上で動かしやすい - Amazon S3と簡単に連携
スケーラブル - ペタバイトの規模で動作する
ユーザが使いやすい - ANSI SQL
オープンソース - Java!
高速
NetflixにおけるPresto/Spark活用事例
利用状況の統計
~3500 queries/day
> 90%
我々のデプロイ
Version 0.114
+ いくつかのパッチ
+ 1つの未公開パッチ (Parquet vectorized read integration)
Amazon EMRのBootstrap Actionでデプロイ
Hadoop YARNのクラスタとは別のクラスタ
Hadoopのサービスは使わない
Amazon EMRをクラスタ管理機能として活用
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で、動的にクラスタサイズを変更
動的なクラスタサイズ変更
NetflixにおけるPresto/Spark活用事例
なぜSpark?
バッチジョブ (Pig, Hive)
• ETLジョブ
• レポートや、その他分析
対話的なジョブ (Presto)
対話的な機械学習ジョブ (Spark)
プログラムが必要なユースケース
デプロイ @ Netflix
Spark on Mesos
• 独自のAMI
• 全てBDAS (Berkeley Data Analytics Stack)
• オンラインストリーム分析
Spark on YARN
• Spark as a service
• Amazon EMR上のYARNのアプリケーション
• オフラインのバッチ分析
マルチテナント
Dynamic Allocation [SPARK-6954]
複数バージョンをサポート
$ 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
…
設定アプリケーション
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で実行
23

More Related Content

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