OSC2012 OSC.DB Hadoop

1,262 views

Published on

2012/7/25 OSC.DBでの資料です。

Published in: News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,262
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

OSC2012 OSC.DB Hadoop

  1. 1. DBとはちょっと違うけど... 分散処理基盤「Hadoop」の 概要と最新動向紹介! 2012年7月25日 日本Hadoopユーザー会 山下 真一2012/7/25 OSC2012.DB 1
  2. 2. 自己紹介• 山下 真一 (やました しんいち) • 日本Hadoopユーザー会 • 某所でHadoopエコシステムと戯れる日々... • 元々は、ApacheとかTomcatとかPostgreSQLとかと 戯れている... • 最近は、執筆したりレビューしたりな日々 • 趣味は、AndroidとかNoSQL系で遊ぶこと • ○活中 (○は任意の文字)2012/7/25 OSC2012.DB 2
  3. 3. 日本Hadoopユーザー会• Hadoopでゆる~く議論・情報交換しています• 主なイベント • 第3回 Hadoop Conference Japan (2011/09) • 第4回は、秋~冬頃 • Hadoopソースコードリーディング (不定期) • 次回は7月30日2012/7/25 OSC2012.DB 3
  4. 4. 日本Hadoopユーザー会• Webサイトは以下の通り • http://hugjp.org/• メーリングリスト(Googleグループ) • https://groups.google.com/group/hadoop-jp?hl=ja2012/7/25 OSC2012.DB 4
  5. 5. Hadoopとは• OSSによる大規模分散処理フレームワーク • Googleの基盤ソフトウェア(GFS, MapReduce)のオープ ンソース実装 • Apache Software Foundationのプロジェクトのひとつ • Javaで実装• 2つのコンポーネントで構成 • HDFS : Hadoop分散ファイルシステム • MapReduce : Hadoop分散処理フレームワーク• Hadoopの基本的なアイデア • 大容量データを並列に処理 • データのローカリティを意識した分散処理2012/7/25 OSC2012.DB 5
  6. 6. Hadoopの特徴• バッチ処理に威力を発揮 • 従来数時間~数日要していた処理を短時間で処理 • 処理を分割して複数のサーバで分散処理を実行• 高いスケーラビリティ • サーバ増設で、格納容量、処理性能を向上 • 数台~4000台程度までのHadoop環境• 特定のサーバが故障してもサービス継続 • データは分割・分散配置 • 処理に異常が発生する場合は、他サーバで再実行• コモディティな製品で構成可能 • 特定ベンダの特別な製品は不要2012/7/25 OSC2012.DB 6
  7. 7. Hadoopの活用例• Yahoo! • 大量データの高スループット処理 • 検索インデックスの生成、迷惑メール • 集計・抽出・変換・分析用途 フィルタ用データの生成 • 過去3年分のログデータ解析が約20分 (従来は26日)• 楽天 • 広告インプレッション解析、レコメンデーション、ランキング集計 • Perlスクリプトによる処理(26時間)がHadoopで4.5時間に短縮• DeNA • ゲーム内での行動履歴分析 (行動特性を抽出・分析) • 2300万人アクティブユーザが生成する1日20億件以上の行動履歴を分析• VISA • カードの不正利用モデルを生成 • 1カ月かかっていたものが、Hadoopによって13分に• 国立国会図書館 • 書誌データから検索エンジン Solr 用のインデックスを生成 2012/7/25 OSC2012.DB 7
  8. 8. Hadoopのよくある誤解×誤解1 : 高速なRDBMS • ミリ秒単位の処理をHadoopに求めてはいけません...×誤解2 : 分散ファイルサーバ •Hadoopは小さなファイルを扱うのが苦手です...○大量データに特化したバッチシステム •オンライン処理は不向き(スループット優先) •データは大きな塊として扱うことが望ましい2012/7/25 OSC2012.DB 8
  9. 9. HadoopとRDBとの違い RDB Hadoop データを「管理する」という データは「管理しない」 観点からデータの重複を 高スループットで処理でき 避けるために正規化する るように非正規化する ・ ・ ・ 正規化されたデータセット いくつかのデータセットを結合し、 非正規化したデータセット • 一度に走査する範囲を小さくする • 一度に走査する範囲を大きくする • 重複保持を排除する • 論理走査範囲を単純分割, 並列処理 • 重複保持は意識しない2012/7/25 OSC2012.DB 9
  10. 10. Hadoopシステム基盤 タスク TaskTracker(s) M M Mジョブ情報 タスク分割 M ・・・ R R R JobTrackerJobClient R ・・・クライ 入出力データはアント データローカリティを ・・・ M 意識した割り当て HDFSと連携 スレーブ マスター サーバ ファイルをブロックに分割 サーバ ・・・ 配置を指示 NameNodeDFSClient ・・・ ブロック ラックを意識した ・・・ ブロック配置を実施 ファイル 2012/7/25 OSC2012.DB DataNode(s) 10
  11. 11. MapReduce 処理 Shuffle スコア (同じKeyでデータを集約) 一覧 <A, 10> <A, {10,25} > <B, 20> <C, {10,5,15} > 何らかの処理 Map <C, 15> <A, 35 > <D, 5> Reduce <C, 30 > Map <A, 25> <C, 10> <D, 10> <B, 30 > Reduce <B, 10> <D, 15 > Map <C, 5> <B, {20,10} > <D, {5,10} > ・<Key, Value>の形式でデータを管理 スコアの抽出 ・MapやReduceが分散処理の対象2012/7/25 OSC2012.DB 11
  12. 12. Hadoopエコシステム2012/7/25 OSC2012.DB 12
  13. 13. 処理言語関係の関連技術• より簡単にMapReduceを実行するためのツール• Apache Pig • データフローによりデータをどのように処理するか定義 • シンプルかつ少ない記述でMapReduceを意識せず実行• Apache Hive • SQLライクな記法により処理内容を定義• Asakusa Framework • 複数種類のDSLを組み合わせて処理内容を定義 2012/7/25 OSC2012.DB 13
  14. 14. 低レイテンシーの関連技術• Hadoopは、数時間~数日を数分~数十分に短 縮する技術 • 秒未満の処理には、Hadoop単体で適用できません• Apache HBase • HDFS上で動作するカラム指向型データベース • “行キー”、”列ファミリ”、”値”、”タイムスタンプ” で データを管理 • 行キーに対して低レイテンシーで読み書きを実現 • Hadoopと同様にスケーラブルな仕組み • 数百TB程度までの動作実績あり2012/7/25 OSC2012.DB 14
  15. 15. データ入出力の関連技術• Hadoopへのデータ入出力を取りまとめる技術• Apache Flume • 様々なログ・データを損失無くHadoop環境に格納す る仕組み • ZooKeeper(分散協調ソフトウェア)により高可用性 を実現• Apache Sqoop • RDBMSとHadoop環境を連携させるコネクター • MapReduceによる分散処理でデータ通信を高速化 2012/7/25 OSC2012.DB 15
  16. 16. Hadoopの最新動向• Hadoopのバージョン関係 Hadoop1.0系 (stable) 従来0.20.2xxと 呼ばれていたもの 新機能開発版 • NameNode HA Hadoop2.0系 • Federation (alpha) • MapReduce 2.0 などなど... 出典: Hadoop Summit 20122012/7/25 OSC2012.DB 16
  17. 17. NameNode HA• ZooKeeperを利用したActive-Standby構成 ZooKeeperを組み合わせて異 常時のNameNode切り替え ホットスタンバイ DataNodeは双方の NameNodeにHeartbeat通信 出典: Hadoop Summit 20122012/7/25 OSC2012.DB 17
  18. 18. HDFS Federation• NameNodeのメタ情報を分割して保持 • 同一NameNodeのメタ情報を分割して保持 • 異なるNameNodeメタ情報も保持可能 DataNodeでは異なる NameNode環境のデータ を保持 出典: Hadoop Summit 20122012/7/25 OSC2012.DB 18
  19. 19. YARN : MapReduce 2.0• YARN • Yet Another/Application Resource Negociator Node Manager Resource Manager 処理ノードの管理 MR基盤のリソース管理 Application Master アプリケーション実行元 Container 処理を実行 • リソース管理とAP管理を分離 • 処理スロット制を廃止 出典: Hadoop Summit 20122012/7/25 OSC2012.DB 19
  20. 20. Hadoopの最新動向• Hadoopエコシステムが更に広がっています• HDP(Hortonworks Data Platform) 1.0 • Apache Hadoop 1.0ベースのディストリビューション • HA(Linux-HA連携), Talend Open Studio連携• CDH4 • Apache Hadoop 2.0ベースのディストリビューション • NameNode HA, MapReduce 2.0 などを採用• Apacheコミュニティでのプロジェクト • Apache HCatalog : Pig/Hive等のメタ情報共通化 • Apache Ambari : Hadoop環境の構築・運用基盤 2012/7/25 OSC2012.DB 20
  21. 21. まとめ• Hadoopは2つのコンポーネントから構成される大規 模分散処理フレームワーク • HDFS • MapReduce• 従来は個別設計が必要であった分散処理を気軽に 実現できるようになります• いわゆる 「スケールアウト」 を実現できます• Hadoopエコシステムは更に拡大します • 開発、構築、運用と様々なプロジェクトが活動中です!2012/7/25 OSC2012.DB 21

×