yahoo! japanを支えるビッグデータプラットフォーム技術

74
1 Privileged and Confidential Yahoo! JAPANを支える ビッグデータ プラットフォーム技術 遠峯 康夫 データソリューション本部 ヤフー株式会社

Upload: yahoo

Post on 15-Jan-2015

2.991 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

1 Privileged and Confidential

Yahoo! JAPANを支える ビッグデータ

プラットフォーム技術

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

ヤフー株式会社

Page 2: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

自己紹介

Privileged and Confidential 2

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

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

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

Page 3: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 3

is

Page 4: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 4

Page 5: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 5

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

Page 6: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

目次

Privileged and Confidential 6

月間総ページビュー数

(2013年7-9月平均)

Page 7: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 7

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

(Yahoo! JAPAN調べ)

Page 8: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

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

Privileged and Confidential 8

ページビュー

広告ログ

検索クエリ

購買履歴

データ 処理

・・・

アクセス解析

効果測定

日本語処理

マルチメディア処理

レコメンデーション

ターゲティング

データフィード

!

ユーザー属性

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

Page 9: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 9

サービス改善

Page 10: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 10

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

サービス改善

Page 11: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 11

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

サービス改善

Page 12: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 12

ターゲティング広告

PR

閲覧

検索キーワード

購買

広告 閲覧/クリック

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

Page 13: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 13

レコメンデーション

Page 14: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 14

単なる検索量のみではない 様々なパラメータ

キーワード補助入力

Page 15: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 15

音声アシスト(音声認識、意図解析)

Page 16: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 16

画像認識

Page 17: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 17

マーケットインテリジェンス

パズル&ドラゴンズ(パズドラ)

Page 18: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 18

マーケットインテリジェンス

パズル&ドラゴンズ(パズドラ) 艦隊これくしょん~艦これ~

Page 19: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 19

マーケットインテリジェンス

Page 20: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 20

マーケットインテリジェンス

Page 21: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 21

Twitterのつぶやきを解析 “ネガティブ”,”ポジティブ” の割合をグラフ化

感情分析

Page 22: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 22

ビッグデータレポート

Page 23: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

利活用事例

Privileged and Confidential 23

都道府県別の議席獲得予測 42都道府県で獲得政党が一致

Page 24: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

目次

Privileged and Confidential 24

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

Page 25: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Yahoo! JAPANデータインフラ概要

Privileged and Confidential 25

・・・

Storm

生成

収集

格納・処理

利活用

Page 26: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

本日はHadoopの話を中心に

Privileged and Confidential 26

・・・

Storm

生成

収集

格納・処理

利活用

Page 27: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 27

Yahoo! JAPANの Hadoopについて

Page 28: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 28

Yahoo! JAPANの Hadoopについて の前に・・・

Page 29: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Hadoopはもちろん重要、でも・・・

Privileged and Confidential 29

本当に データを使い倒すには Hadoop以外の周辺システムとの連携が必要

Page 30: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Hadoop周辺システムのご紹介

Privileged and Confidential 30

・・・

Storm

生成

収集

格納・処理

利活用

Page 31: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

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

Privileged and Confidential 31

Storm

DataHighway データ入力

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

Page 32: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

DataHighwayについて

Privileged and Confidential 32

Storm

DataHighway データ入力

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

Page 33: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

DataHighwayについて

Privileged and Confidential 33

とは?

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

DataHighwayの規模

・回収先:約8,500台 ・データ転送量:約13TB/day (圧縮済み)

DataHighway

Page 34: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Stormについて

Privileged and Confidential 34

Storm

DataHighway データ入力

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

Page 35: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Stormについて

Privileged and Confidential 35

Stormとは? Twitter社がOSSとして公開した、 分散ストリーム処理プラットフォーム 9/18にApache Incubatorプロジェクト化 (リアルタイムに)逐次流れてくるデータを

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

Yahoo! JAPANでの活用例

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

Page 36: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Teradataについて

Privileged and Confidential 36

Storm

DataHighway データ入力

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

Page 37: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Teradataについて

Privileged and Confidential 37

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

Yahoo! JAPANでの活用例

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

Page 38: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

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

Privileged and Confidential 38

Storm

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

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

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

Page 39: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 39

Yahoo! JAPANの Hadoopについて

Page 40: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

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

Privileged and Confidential 40

1. Hadoop構成

2. Hadoop規模

3. Hadoopの特色

4. チューニング事例

5. 機材の選び方

6. 今後の展望

Page 41: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 41

Yahoo! JAPANのHadoop構成

Page 42: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Hadoopクラスタの状況

Privileged and Confidential 42

本番系:2クラスタ

Production Cluster1

開発系:6クラスタ

Production Cluster2

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

Page 43: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

エコシステム

Privileged and Confidential 43

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

Page 44: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 44

Yahoo! JAPANのHadoopの規模

Page 45: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Yahoo! JAPANのHadoop規模

Privileged and Confidential 45

約3,500台

国内最大級 その規模感は?

Page 46: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Yahoo! JAPANのHadoop規模感

Privileged and Confidential 46

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

約1.5台/day

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

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

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

約1,000時間/day

Page 47: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 47

Yahoo! JAPANのHadoopの特色

Page 48: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Yahoo! JAPANのHadoop特色

Privileged and Confidential 48

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

Page 49: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

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

Privileged and Confidential 49

・平均同時実行Job数

・同時最大実行ユーザ数

・最大同時実行Job数

約40Job

120Job超

約30ユーザ

Page 50: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

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

Privileged and Confidential 50

いかに安定・公平に マルチテナント運用を行うか

Page 51: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

状況の可視化

Privileged and Confidential 51

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

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

最大能力

使用量

Page 52: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

状況の可視化

Privileged and Confidential 52

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

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

Page 53: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

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

Privileged and Confidential 53

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

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

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

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

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

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

Page 54: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 54

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

Page 55: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

チューニングの内容

Privileged and Confidential 55

タスクslot数の最適化

タスクslot数とは?

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

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

Page 56: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

そもそもチューニングしようとした訳

Privileged and Confidential 56

H/Wのリソースが 余っていることを発見

今のH/Wに合った最適な設定値を探していた

CPU,DiskI/O,Memory Netowork,etc… 様々な指標を確認 そのうち、全ての指標に 若干の余裕があることがわかる

Page 57: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

それならば・・・

Privileged and Confidential 57

1ノードでもっとTaskが動かせる! かもしれない

しかし、既に本番稼動しているクラスタ チューニングして問題がでないか・・・?

テストクラスタでは 規模が大きく異なるため、 必ずしも参考にはならない。 ※ネットワークトラフィックなど

テスト:本番 = 1:50~100 くらいの差

Page 58: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

まずは再度現状の把握

Privileged and Confidential 58

チューニング前に様々な指標を確認

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

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

Page 59: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

気をつける項目の一例

Privileged and Confidential 59

気をつける項目の一例

・個別のノード(計算ノード側)

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

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

Page 60: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

本番でのテスト実施

Privileged and Confidential 60

一部のラックに対して チューニング実施

ラックスイッチの限界などを測定するためにも ラック単位で設定値を変える必要がある

タスクslotの増加により 新しくボトルネックが 生まれてしまう可能性に注意

Page 61: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

結果の検証

Privileged and Confidential 61

デグレされていないかの確認

グラフでのH/W指標の確認はもちろん 既存Jobのジョブ実行時間、タスク実行時間なども比較

タスク実行時間

<<< 未チューニングノード チューニングノード

となっていないか

Page 62: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

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

Privileged and Confidential 62

チューニングの成果

チューニング実施

実施後の最大性能

50%向上

Page 63: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 63

機材の選び方

Page 64: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

「コモディティ」が大切

Privileged and Confidential 64

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

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

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

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

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

Page 65: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

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

Privileged and Confidential 65

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

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

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

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

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

Page 66: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 66

今後の展望

Page 67: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

今後の課題

Privileged and Confidential 67

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

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

Page 68: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

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

Privileged and Confidential 68

Hadoop-2.xの導入

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

・NameNode-HA

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

10/15にHadoop-2.2.0-GAリリース!

Page 69: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 69

Ready?

Page 70: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

目次

Privileged and Confidential 70

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

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

Page 71: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

目次

Privileged and Confidential 71

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

Page 72: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

まとめ

Privileged and Confidential 72

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

Page 73: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 73

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

Page 74: Yahoo! JAPANを支えるビッグデータプラットフォーム技術

Privileged and Confidential 74