More Related Content
Similar to Hadoop~Yahoo! JAPANの活用について~
Similar to Hadoop~Yahoo! JAPANの活用について~ (20)
More from Yahoo!デベロッパーネットワーク
More from Yahoo!デベロッパーネットワーク (20)
Hadoop~Yahoo! JAPANの活用について~
- 3. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
3
自己紹介
角田 直行 ( かくだ なおゆき )
R&D 統括本部 プラットフォーム開発本部検索開発部 開発 3
–2005 年 ヤフー株式会社入社
–ヤフー地図
–ヤフー路線
–ヤフー検索
…
–2010 年現在、検索プラットフォームを開発中
- 4. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
4
Agenda
–Introduction
–Hadoop とは
–事例紹介
–Hadoop の特性
–Hadoop の将来像
–まとめ
- 6. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
6
有名なネットサービス
月間 496 億 7100 万
PV
1 日 5000 万 のつぶやき
商品数 6800 万
月間ユーザ数 5 億人
各サービスとも日々成長を続けています
- 7. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
7
莫大なデータ量との闘い
–成長を続けていくにはアクセスログ解析やデータマイニング
などが必須
–億単位の行 or テラバイト級のデータを短時間で処理した
い
毎日処理しなければならない
- 8. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
8
Yahoo! JAPAN が扱うデータ
–ログは 1 日分だけでもかなりのサイズになる
–行数を数えるだけでも数日かかる
- 9. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
9
解決策としての Hadoop
–大規模な処理、大容量のデータを扱うには
1 台のサーバでは不可能
–マルチコアによる並行処理アプローチは複雑すぎる
–数十~数千台規模で簡単にスケールする環境が不可欠
この発表では、
Yahoo! JAPAN が Hadoop をどう活用してい
るか
について事例を交えて解説します
- 11. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
11
Hadoop とは
–大規模分散処理システム
–Google MapReduce/GFS を論文を元に実装
–処理時間が数時間以上かかるようなバッチ処理に向いている
→ Web のように、即座に結果が返るような
リアルタイム処理には不向き
–Java で書かれ、オープンソースとして公開
- 12. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
12
Hadoop とは
–Doug Cutting 氏が生みの親
–全文検索ライブラリ Lucene などの
他有名 OSS も開発
–Yahoo! Inc. 在籍時はフルタイムで開発
–現在は Cloudera に在籍
( 出典元 :Wikipedia)
- 13. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
13
Hadoop とは
大きく MapReduce と HDFS
( 分散ファイルシステム ) に分かれる
- 14. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
14
Hadoop MapReduce
長時間かかる巨大な処理を複数台のマシンに分散
・・・
・・・
- 15. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
15
Hadoop HDFS
・巨大なファイルを複数台に分割
・複数サーバの各 HDD を 1 つの HDD のように扱える
- 17. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
17
MapReduce
–大容量データを処理するために設計されたプログラミングモ
デル
–関数型プログラミングの map 関数と reduce 関数に基づい
ている
「 MapReduce: Simplified Data Processing on Large Clusters 」
Jeffrey Dean & Sanjay Ghemawat
- 18. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
18
Map タスク
1x1 2x2 3x3 4x4 5x5
1 4 9 16 25
リスト内の各要素に対して特定の処理を適用する
例 : 1 ~ 5 のリストの各要素に対して二乗する処理を適用する
入力
出力
54321
- 19. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
19
Map タスク
1 x 1 2 x 2 3 x 3 4 x 4 5 x 5
各要素の計算 ( 処理 ) は別々のマシンで行っても可能
541 32
- 20. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
20
Reduce タスク
15
1 2 3 4 5入力
出力
リスト内の各要素に対して特定の処理を適用し、
縮約する ( 畳み込む )
例 : 1 ~ 5 のリストの各要素に対して加算処理を適用し縮約する
+ + + + +
- 21. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
21
MapReduce
<key, value>
<key, value>
<key, value>
実際の MapReduce で処理する際、
データは key-value のペアの構造を持つ
- 22. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
22
Shuffle タスク
–Map タスクと Reduce タスクの間で行われるタスク
–Map 出力 <key, value> の同一 key を持つデータを
集めて Reduce へ送る
Map タスク Shuffle タスク Reduce タスク
- 23. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
23
MapReduce の処理フロー
Map Shuffle Reduce
入力 出力
- 25. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
25
HDFS
–Hadoop Distributed File System
–Hadoop MapReduce を動作するための分散ファイルシス
テム
–Linux などの OS のファイルシステム上で Java を起動して
稼動
OS
Java VM
HDFS
- 26. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
26
HDFS の主な特徴
–コモディティマシンで動作する
–大手ベンダーから入手できる汎用的なサーバ
–コモディティマシン ≠ 安価なマシン
–大規模なデータを扱える
–高い耐障害性を持っている
- 27. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
27
HDFS のファイル管理
–何 GB ~何 TB ものデータを扱うことを想定
–64MB( デフォルト ) ごとに分割して管理
–Linux など通常のファイルシステムは数 KB 単位
–write-once-read-many
–読み込みが多く、書き込みは一度だけ
–追記は極力行わない ( 技術的には可能 )
- 28. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
28
HDFS のファイル管理
・
・
・
巨大ファイル
64MB
・・・
・・・
ラック 1
ラック 2
・
・
・
3 つのレプリカ ( 複製 ) を別のマシン or ラック に配布
- 29. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
29
HDFS の耐障害性
–Hadoop は数台~数千台もの規模で扱う
–1 台あたりの寿命を平均 3 年とすると・・・
→ 1000 台あると、毎日 2 ~ 3 台が障害
–障害が頻繁に発生することを前提に
→ 障害を素早く検知することで、障害~復旧までの時間を短
く
- 30. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
30
HDFS の耐障害性
マスター ( 親 )/ スレーブ ( 子 ) 方式による管理
マスター
(NameNode)
スレーブ
(DataNode)
スレーブ
(DataNode)
スレーブ
(DataNode)
スレーブ
(DataNode)
スレーブ
(DataNode)
定期的に生存信号 (Heartbeat) を送信
1 台返ってこない・・・
死んだ?
- 31. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
31
HDFS の管理
–Unix シェル風のコマンド
–Web ブラウザで操作できる管理画面
$ hadoop fs –ls
$ hadoop fs –mkdir input_dir
$ hadoop fs –rm hdfs_dir/hdfs_file
$ hadoop fs -put local_file hdfs_dir
$ hadoop fs –get hdfs_file local_dir
- 33. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
33
Hadoop を活用している会社
など・・・
増え続けています!
- 34. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
34
The New York Times
–TimeMachine
–過去のアーカイブを公開
–4TB の TIFF を PDF に
–Amazon EC2 / S3
–100 インスタンス
–24 時間
–1500 ドル以下
–MRToolKit を公開
- 35. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
35
eHarmony
–アメリカの 4% のカップルが eHarmony を通じて結婚
–毎日平均 236 人が結婚している
–カップルのマッチングの計算に Hadoop を利用
–何十年もの研究と臨床実験に基づいたモデル
–新しいモデルも日々テストされている
–モデルの評価は、部屋にゴリラを入れて実験
- 36. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
36
FlightCaster
–飛行機の遅れを、航空会社の発表の数時間前に予報するサイ
ト
–以下の情報を元に推測
–到着便情報
–天気予報
–FAA( 米国連邦航空局 ) の情報
–過去 10 年間の航空便のデータ
–Hadoop を使って予測の計算処理
- 37. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
37
Yahoo! Inc. での事例紹介
- 38. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
38
Hadoop at Yahoo! Inc
–Hadoop ユーザ、テスター、コミッターの数が最も多い
–Haoop のクラスタ、台数が最も多い
– 多数のクラスタがあり、合計 25000 台以上
– 1 クラスタにつき最大 4000 台
- 39. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
39
Yahoo! Inc トップページ
- 40. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
40
Yahoo! Inc トップページ
広告最適化
検索イン
デックス
- 41. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
41
Yahoo! Inc トップページ
広告最適化
コンテンツ
最適化
検索イン
デックス
スパムフィル
ター
コンテンツ
管理
コンテンツ
最適化
- 42. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
42
サーチアシスト
–入力した検索ワードに関連のありそうな単語を自動で補完
–データベースの構築に Hadoop を使用
–3 年分のデータと、 20 ステップの MapReduce
Hadoop 使用前 Hadoop
時間 26 日 20 分
言語 C++ Python
開発期間 2 ~ 3 週間 2 ~ 3 日
- 44. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
44
検索ログプラットフォーム
–社内の検索サービスのログ解析全般
–Hive を独自に拡張して使用している
–様々な Yahoo! JAPAN のサービスにデータを提供
- 45. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
45
Yahoo! 検索
–関連検索ワード
–キーワード入力補助
–ショートカットの表示制御
–検索ログプラットフォームのデータが元になっている
- 46. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
46
Yahoo! 検索ランキング
–検索ランキング、急上昇ワードランキングなど
–都道府県別、性年代別のランキング( Yahoo! ラボ)
–検索ログプラットフォームが提供したデータをさらに加工し
ている
- 47. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
47
レコメンデーションプラットフォーム
– レコメンデーションサービスの計算処理に利用
– ビヘイビアデータのクラスタリング計算
– クラスタとコンテンツデータのマッチング計算
– Yahoo! オークションなど
- 48. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
48
地図検索
–地図検索インデックス生成
–クリックログ集計・検索ランキング反映
–店舗やビルの一意性処理
–開いているお店検索
– クロール
– 定休日・営業時間抽出
– 検索インデックス生成
- 49. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
49
検索プラットフォーム( ABYSS )
– 社内の検索サービスをホスティングするプラットフォー
ム
– 論文検索、サイトサーチ、モバイル辞書など。他のサー
ビスにも順次導入予定
– 検索データのストレージとして使用
– 検索インデックス生成、検索データの解析処理
- 50. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
50
その他の事例
–モバイル検索
–広告プラットフォーム
–地域 API プラットフォーム( YOLP )
–Yahoo! JAPAN 研究所
–Etc…
- 51. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
51
事例まとめ
–データ分析、データマイニング
– ログ解析、レコメンデーション、テキストマイニングな
ど
–検索関係
– 検索インデックス生成、ランキング計算など
→ 大量のデータを読み込んで解析をする処理、大量の計算が
必要な「バッチ処理」がほとんど
- 53. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
53
Hadoop の特性
–Hadoop の HDFS や MapReduce は、どのような特性があ
るか
–Hadoop はどのような問題点があってどのような解決法があ
るか
→Hadoop をどのように活用していけばいいかを探ります
- 54. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
54
Hadoop の特性
–MapReduce を使って、バッチ処理を簡単に分散できるのが
一番の強み
–HDFS も MapReduce を使ったバッチ処理に最適化されて
いる
- 55. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
55
HDFS の特性
–ストレージとして使うには特性を理解する必要がある
– × RDBMS の代用
– × ユーザから多くのアクセスがあるストレージ
– △ 小さいデータを多く格納するストレージ
– ○ アクセスログデータのストレージ
– ○ 過去の取引履歴データのストレージ
- 56. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
56
HDFS の特性
–何 GB というような大きなデータを一気に書き込んだり、読み出したり
する用途に最適化
– シーケーシャルアクセス。 SSD はあまり意味ない
–データの書き換えは想定されていない
– ランダム書き込みができない
– ファイルロック(排他制御)がない
–秒間何十回といった大量の読み書き処理には向かない
– ファイルキャッシュがない
– もちろん RDBMS のようにインデックスがない
- 57. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
57
HDFS の問題点と解決法
–Namenode が単一障害点
–バックアップはできる
– Backupnode
– 0.20 以前では NFS にバックアップできる
–自動復旧には、 Hadoop 以外の解決法を使う必要あり
– DRBD + Heartbeat
– Zookeeper など
- 58. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
58
HDFS の問題点と解決法
–セキュリティが考慮されていない
– 誰でも、どんな処理でも、どのサーバからでもアクセス可能
– 権限管理はあるが、任意の user/group に変更可能
–複数企業などでクラスタを共有する場合に問題
–解決法
– ネットワークを遮断し、ポートのアクセスを制限
– Yahoo! Distribution Of Hadoop With Security
– Kerberos 認証ベース
– ベータバージョン。 Hadoop 0.22 で正式サポート
– C l oudera Distribution Of Hadoop にも追加
- 59. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
59
HDFS の問題点と解決法
–小さいデータを大量に格納するのが苦手
– Namenode のメモリを逼迫
– MapReduce の処理が非効率
– ブロックサイズを小さくすると性能が落ちる(通常 100M 前後)
–解決法
– MapReduce で、小さいファイルを一つにまとめる処理を定期的に
走らせる
– Hadoop Archives で、ディレクトリごとファイルをまとめる
- 60. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
60
MapReduce の特性
–簡単にバッチ処理を分散できるフレームワーク
– 通信、監視、障害など、何も考えずに、やりたい処理だ
けに集中できる
–シンプルなモデルで色々な処理に柔軟に対応できる
– SQL などより柔軟性が高い
–習得に時間がかかり必ずしも簡単とは言えない
–リアルタイム処理ができない
- 61. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
61
MapReduce の問題点と解決法
– 習得に時間がかかり必ずしも簡単とは言えない
– Java で MapReduce を書くのはマシン語を書くようなもの
– 解決法はたくさんある
– Yahoo! Inc の 60% のジョブは Pig 、日本でも多く使われている
Hive
CREATE TABLE pokes (foo INT, bar STRING);
SELECT a.foo FROM pokes a;
Pig
A = load 'passwd' using PigStorage(':');
B = foreach A generate $0 as id;
dump B;
- 62. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
62
MapReduce の問題点と解決法
–リアルタイム処理ができない
–Yahoo! Inc から、「 S4 」というデータストリームを処理
するためのプラットフォームが発表
–MapReduce に影響を受けたプログラミングモデル
–Hadoop とは直接関係はない
–広告の CTR の計算などに使用
- 63. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
63
Hadoop の特性まとめ
–Hadoop はバッチ処理に最適化されている
–リアルタイム処理のためのストレージ /DB はたくさん選択
肢がある
– Key/Value ストア
( Cassandra 、 MondoDB 、 Redis ・・・)
– RDBMS
– Hadoop 上では、 HBase という KVS がある
→ 使い分けが重要
- 64. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
64
使い分けの例
–ブログサービスの例
–話題のキーワード、アクセスランキングの計算に Hadoop を使用
アプリケーションサーバ
Hadoop
RDBMS
ログファイル
ユーザ
話題のキーワード、
ランキング結果を転送
一日分のデータを
転送
- 65. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
65
Hadoop の将来像
- 66. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
66
Hadoop の問題点
–そもそもサーバが用意できないから試せない
–セットアップが大変
→ 解決されつつある
- 67. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
67
Hadoop を簡単に使える環境
–Amazon Elastic MapReduce
–Hadoop の MapReduce を簡単に実行できる
–従量課金( 100 台を 1 時間で、 1000 円程度)
–Hadoop の知識は必要だが、セットアップは最小限
–Google BigQuery
–Google の MapReduce 環境を使える
–SQL ライクな命令( Hive に似ている)
–REST API で簡単に実行できる
- 68. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
68
Hadoop の将来像
–Hadoop を使って処理を行うユーザと、 Hadoop の運用を
行うインフラエンジニアに分離
–ユーザは、 Pig や Hive などを覚えていればよい
–インフラエンジニアは少数
–インフラは Amazon Elastic MapReduce みたいな外部
サービスに任せておけばよい
–Yahoo! Inc はすでにそうなっていて、 Yahoo! JAPAN
でもなりつつある
- 69. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
69
まとめ
- 70. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
70
まとめ
–Hadoop は大規模なデータを複数のマシンに分散して
処理できるプラットフォーム
–Hadoop を使う企業は増え続けていて、不可欠な技術に
なりつつある
–Hadoop は、大規模データを扱う処理や、大量の計算が必要
な
バッチ処理に向いている
- 71. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
71
TechBlog
http://techblog.yahoo.co.jp/
- 72. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
72
Hadoop Hack Night
2010 年 3 月、 8 月に開催
- 73. Copyright © 2010 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止
73
ご静聴ありがとうございました!