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