大規模サイトを支えるビッグデータプラットフォーム技術

58
1 Privileged and Confidential 大規模サイトを支える ビッグデータ プラットフォーム技術 遠峯 康夫 データソリューション本部 ヤフー株式会社

Upload: yahoo

Post on 15-Jan-2015

7.164 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 大規模サイトを支えるビッグデータプラットフォーム技術

1 Privileged and Confidential

大規模サイトを支える ビッグデータ

プラットフォーム技術

遠峯 康夫 データソリューション本部

ヤフー株式会社

Page 2: 大規模サイトを支えるビッグデータプラットフォーム技術

自己紹介

Privileged and Confidential 2

遠峯 康夫(とおみね やすお) 事業戦略統括本部 データソリューション本部 データインフラ開発部

2010年 新卒入社 Hadoopクラスタ立ち上げの部署に配属

2012年 データソリューション配属 Hadoop、リアルタイム処理基盤などを担当

Page 3: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 3

is

Page 4: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 4

Page 5: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 5

あらゆるジャンルの ビッグデータを保有

Page 6: 大規模サイトを支えるビッグデータプラットフォーム技術

目次

Privileged and Confidential 6

月間総ページビュー数

(2013年1-3月平均)

Page 7: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 7

年間ユニーク検索クエリ数

(Yahoo! JAPAN調べ)

Page 8: 大規模サイトを支えるビッグデータプラットフォーム技術

ビッグデータはユーザーのために利活用

Privileged and Confidential 8

ページビュー

広告ログ

検索クエリ

購買履歴

データ 処理

・・・

アクセス解析

効果測定

日本語処理

マルチメディア処理

レコメンデーション

ターゲティング

データフィード

!

ユーザー属性

ビッグデータはユーザーの課題解決につながる

Page 9: 大規模サイトを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 9

サービス改善

Page 10: 大規模サイトを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 10

縦22ピクセル 縦28ピクセル

サービス改善

Page 11: 大規模サイトを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 11

縦22ピクセル 縦28ピクセル

サービス改善

Page 12: 大規模サイトを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 12

ターゲティング広告

PR

閲覧

検索キーワード

購買

広告 閲覧/クリック

興味関心を推定し最適な広告を掲出

Page 13: 大規模サイトを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 13

レコメンデーション キーワード入力補助 音声アシスト (音声認識、意図解析)

Page 14: 大規模サイトを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 14

アクセス解析 マーケットインテリジェンス

Page 15: 大規模サイトを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 15

アクセス解析 マーケットインテリジェンス

Page 16: 大規模サイトを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 16

ビッグデータレポート

Page 17: 大規模サイトを支えるビッグデータプラットフォーム技術

目次

Privileged and Confidential 17

どのようなシステムでデータを 処理しているのか?

Page 18: 大規模サイトを支えるビッグデータプラットフォーム技術

データインフラ概要

Privileged and Confidential 18

・・・

Storm

生成

収集

格納・処理

利活用

Page 19: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 19

Yahoo! JAPANの Hadoopについて

Page 20: 大規模サイトを支えるビッグデータプラットフォーム技術

Yahoo! JAPANのHadoopについて – 目次

Privileged and Confidential 20

1. Yahoo! JAPANのHadoop構成

2. Yahoo! JAPANのHadoop規模

3. Yahoo! JAPANのHadoopの特色

4. チューニング事例

5. 機材の選び方

6. 今後の展望

Page 21: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 21

Yahoo! JAPANのHadoop構成

Page 22: 大規模サイトを支えるビッグデータプラットフォーム技術

Yahoo! JAPANのHadoop構成 – クラスタ

Privileged and Confidential 22

本番系:2クラスタ

Production Cluster1

開発系:6クラスタ

Production Cluster2

開発系は本番と比べると非常に小さいクラスタ 次期投入バージョンの検証なども実施

Page 23: 大規模サイトを支えるビッグデータプラットフォーム技術

Yahoo! JAPANのHadoop構成 – エコシステム

Privileged and Confidential 23

Oozie,Pig,Hive等のエコシステムを活用

Page 24: 大規模サイトを支えるビッグデータプラットフォーム技術

Hadoopを中心とした周辺システムとの連携

Privileged and Confidential 24

Storm

DataHighway データ入力

一次加工データ 分析用データ連携

Page 25: 大規模サイトを支えるビッグデータプラットフォーム技術

DataHighwayについて

Privileged and Confidential 25

Storm

DataHighway データ入力

一次加工データ 分析用データ連携

Page 26: 大規模サイトを支えるビッグデータプラットフォーム技術

DataHighwayについて

Privileged and Confidential 26

とは?

Yahoo! JAPANで利用しているログ収集プロダクト 全てのWeblogを回収する仕組み 大量のデータを処理できる環境に運ぶために 必須の仕組み

DataHighwayの規模

・回収先:約8,500台 ・データ転送量:約13TB/day

DataHighway

Page 27: 大規模サイトを支えるビッグデータプラットフォーム技術

Stormについて

Privileged and Confidential 27

Storm

DataHighway データ入力

一次加工データ 分析用データ連携

Page 28: 大規模サイトを支えるビッグデータプラットフォーム技術

Stormについて

Privileged and Confidential 28

Stormとは? Twitter社がOSSとして公開している、 分散ストリーム処理プラットフォーム (リアルタイムに)逐次流れてくるデータを

即時に処理していこうという仕組み。

Yahoo! JAPANでの活用例

・各ページのリンクのクリック速報 ・広告改善のための一次データ加工 ・スマートフォンアプリのエラー速報 など

Page 29: 大規模サイトを支えるビッグデータプラットフォーム技術

Teradataについて

Privileged and Confidential 29

Storm

DataHighway データ入力

一次加工データ 分析用データ連携

Page 30: 大規模サイトを支えるビッグデータプラットフォーム技術

Teradataについて

Privileged and Confidential 30

とは? Teradata社の商用RDBMS 並列分散処理で、高速にSQLを実行できる Yahoo! JAPANでは、 主にアナリストの分析用途として活用

Yahoo! JAPANでの活用例

・広告レポートの抽出 ・広告モデルの効果測定 など

Page 31: 大規模サイトを支えるビッグデータプラットフォーム技術

Hadoopだけではなく適切な役割分担が必要

Privileged and Confidential 31

Storm

・大規模バッチ処理 ・大規模アドホック処理 ・大量データの蓄積

・リアルタイム処理 ・逐次流れるデータの一次加工

・大規模な結合処理 ・高速なアドホック分析処理

Page 32: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 32

Yahoo! JAPANのHadoopの規模

Page 33: 大規模サイトを支えるビッグデータプラットフォーム技術

Yahoo! JAPANのHadoop規模

Privileged and Confidential 33

約3,500台

その規模感は?

Page 34: 大規模サイトを支えるビッグデータプラットフォーム技術

Yahoo! JAPANのHadoop規模感

Privileged and Confidential 34

・1日に故障するサーバ台数

約1.5台/day

・1日にRead/Writeされるデータ量

Read:約750TB/day Write:約60TB/day

・1日に処理されるJobの積算時間

約1,000時間/day

Page 35: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 35

Yahoo! JAPANのHadoopの特色

Page 36: 大規模サイトを支えるビッグデータプラットフォーム技術

Yahoo! JAPANのHadoop特色

Privileged and Confidential 36

400ユーザを超える規模での マルチテナンシー運用

Page 37: 大規模サイトを支えるビッグデータプラットフォーム技術

どれくらいマルチテナンシー?

Privileged and Confidential 37

・平均同時実行Job数

・同時最大実行ユーザ数

・最大同時実行Job数

約40Job

120Job超

約30ユーザ

Page 38: 大規模サイトを支えるビッグデータプラットフォーム技術

マルチテナンシーの難しさ

Privileged and Confidential 38

いかに安定して マルチテナント運用を行うか

Page 39: 大規模サイトを支えるビッグデータプラットフォーム技術

状況の可視化

Privileged and Confidential 39

リソース使用状況の可視化

ある一日の利用状況 グラフの色でどの部署(ユーザ)がどの程度利用しているかを可視化

最大能力

使用量

Page 40: 大規模サイトを支えるビッグデータプラットフォーム技術

状況の可視化

Privileged and Confidential 40

もちろん、曜日によって使われ方も違う

濃青は主に個人ユーザのアドホック利用 土日はあまり使われていないのがわかる

Page 41: 大規模サイトを支えるビッグデータプラットフォーム技術

マルチテナントでうまく回すために

Privileged and Confidential 41

・利用者による一定の自治

・リソースキャパシティの定期的な見直し

・スケジューラ設定のチューニング

先の可視化グラフをユーザに見せ、 空いている時間帯を自ら選んでもらう。

部署毎に利用できるリソースの量に違いを持たせる。 利用率などを見て定期的に見直し。

Job同士のリソースの分け方に最適値はない。 トライアンドエラーで最も良いものを探し続ける。

Page 42: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 42

Yahoo! JAPANでのチューニング事例

Page 43: 大規模サイトを支えるビッグデータプラットフォーム技術

チューニングの内容

Privileged and Confidential 43

タスクslot数の最適化

タスクslot数とは?

単純に言うと、どれだけHadoopで 並列処理をさせるかの指標 これを多く出来れば、 同じ機材でより処理効率が高まる。

ここの高さを高くするということ

Page 44: 大規模サイトを支えるビッグデータプラットフォーム技術

チューニングの一例 – 現状の分析

Privileged and Confidential 44

様々な指標を確認

・当然、個別のノードの指標(CPU,Mem,Disk等)は重要

・個別のノードだけでなく、 システム全体の指標(スイッチのトラフィック等)もとても重要

Page 45: 大規模サイトを支えるビッグデータプラットフォーム技術

チューニングの一例 – 気をつける項目の一例

Privileged and Confidential 45

気をつける項目の一例

・個別のノード(計算ノード側) ・CPU(特にwaitIO) ・Memory ・Disk(IObusy, queue) ・LoadAverage ・インターフェーストラフィック ・システム全体(スイッチ、マスタノード等) ・スイッチトラフィック ・マスタノードリソース(CPU, Mem, etc…)

個別のノードの指標に集中しすぎると、 システム全体のデグレに気付かない可能性がある

Page 46: 大規模サイトを支えるビッグデータプラットフォーム技術

チューニングの一例 – 結果

Privileged and Confidential 46

チューニングの成果

チューニング実施

実施後の最大性能

50%向上

Page 47: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 47

機材の選び方

Page 48: 大規模サイトを支えるビッグデータプラットフォーム技術

「コモディティ」が大切

Privileged and Confidential 48

コモディティな機材を選ぶ

コモディティ = 低性能・低価格

ディスク:CPUコア数 メモリ:CPUコア数 これらの比率に特に注意して選定

HBase等、使うエコシステムは事前に考えておく

コモディティ = 最高のコスパ

Page 49: 大規模サイトを支えるビッグデータプラットフォーム技術

Yahoo! JAPANで使っている機材の一例

Privileged and Confidential 49

メモリ : 64GB CPU : 12コア24スレッド ディスク : 3TB × 4ディスク

Yahoo! JAPANでも当初それに倣い構成を計画

ディスクIOがネックになると言うのがHadoopのセオリー

定期的な計測により、ディスクを重視しない(CPU重視) のYahoo! JAPANの現在に合った構成に

処理に応じた適切な構成を選択する必要がある

Page 50: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 50

今後の展望

Page 51: 大規模サイトを支えるビッグデータプラットフォーム技術

今後の課題

Privileged and Confidential 51

安定性 基本的に安定的に運用できているが、 単一障害点(SPOF)があるのがネック

拡張性 MapReduceだけでは 今後の処理ニーズに対応しきれない 新しいフレームワークの模索の必要性

Page 52: 大規模サイトを支えるビッグデータプラットフォーム技術

今後の展開の一つのケースとして

Privileged and Confidential 52

Hadoop-2.xの導入

単一障害点(SPOF)であったNameNodeの可用性が向上より信頼のおけるシステムへ

・NameNode-HA

・YARN JobTrackerというSPOFのあったアーキテクチャを改良 全くJobが動かせなくなる可能性を低減 MapReduceのみならない多様なフレームワークの可能性

※YARNの安定にはもう少し時間がかかりそうですが

Page 53: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 53

Ready?

Page 54: 大規模サイトを支えるビッグデータプラットフォーム技術

目次

Privileged and Confidential 54

どのようにしてビッグデータを 利活用しているのか? 全員がデータに触れることが重要

データは一部の人だけのものではない

Page 55: 大規模サイトを支えるビッグデータプラットフォーム技術

目次

Privileged and Confidential 55

どのようにしてビッグデータを 利活用しているのか? 全員がデータに触れられる環境

Page 56: 大規模サイトを支えるビッグデータプラットフォーム技術

まとめ

Privileged and Confidential 56

・Yahoo! JAPANはあらゆるジャンルの ビッグデータを保有 ・Hadoopを中心としたデータ処理システム を構築、運用 ・データを効果的に利活用するには 技術面だけでなく組織面での整備も必要

Page 57: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 57

データで、ユーザーファーストを実現

Page 58: 大規模サイトを支えるビッグデータプラットフォーム技術

Privileged and Confidential 58