OSC2012 Tokyo/Spring - Hadoop入門

2,335 views

Published on

2012/3/17 (Sat.) 11:00-11:45
OSC 2012 Tokyo/Spring
@meisei univ.

0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,335
On SlideShare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
0
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

OSC2012 Tokyo/Spring - Hadoop入門

  1. 1. Hadoop 入門 オープンソースで作る分散処理基盤2012 年 3 月 17 日Shinichi Yamashita 1 OSC 2012 Tokyo/Spring
  2. 2. 自己紹介Shinichi Yamashita (やました しんいち) 象の面倒をみることが最近の日課最近興味を持っているもの パッチの投稿 文書の執筆にダメ出し最近思うこと、「少し休ませて。。。」 2 OSC 2012 Tokyo/Spring
  3. 3. 本日の発表内容Hadoop を知ろう Hadoop とは何か、 Hadoop のイイ所Hadoop の使い方 Hadoop での処理、事例Hadoop とその仲間たち Hadoop と関連技術の紹介Hadoop を動かそう デモとして実際に Hadoop を動作 3 OSC 2012 Tokyo/Spring
  4. 4. 本日の発表内容Hadoop を知ろう Hadoop とは何か、 Hadoop のイイ所Hadoop の使い方 Hadoop での処理、事例Hadoop とその仲間たち Hadoop と関連技術の紹介Hadoop を動かそう デモとして実際に Hadoop を動作 4 OSC 2012 Tokyo/Spring
  5. 5. Hadoop を知ろうHadoop について説明します 5 OSC 2012 Tokyo/Spring
  6. 6. Hadoop とは何か?ベースは Google 社が発表した 2 つの論文 The Google File System (ACM, 2003) MapReduce: Simplified Data Processing on Large Clusters (OSDI, 2004)Doug Cutting 氏が中心となり Java で実装2 つの主要コンポーネントから構成 HDFS : Hadoop 分散ファイルシステム Hadoop MapReduce : 分散処理フレームワーク 6 OSC 2012 Tokyo/Spring
  7. 7. MapReduce の仕組み スコア Shuffle 一覧 (同じ Key でデータを集約) <A, 10> <A, {10,25} > <B, 20> <C, {10,5,15} > 何らかの処理 Map <C, 15> Reduce <A, 35 > <D, 5> <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 が分散処理の対象 7 OSC 2012 Tokyo/Spring
  8. 8. HDFS と MapReduce の関係 タスク TaskTracker(s) M M Mジョブ情報 タスク分割 M ・・・ R R R JobTrackerJobClient R ・・・ クライ 入出力データは アント データローカリティを HDFS と連携 ・・・ M 意識した割り当て スレーブ マスター サーバ ファイルをブロックに分割 サーバ ・・・ 配置を指示 NameNodeDFSClient ・・・ ・・・ ファイル DataNode(s) ラックを意識した ブロック配置を実施 8 OSC 2012 Tokyo/Spring
  9. 9. Hadoop のイイ所従来数時間~数日要していたバッチ処理を数分~短時間で処理 同じ処理を複数のサーバで分担して処理させることがポイント大量のさまざまなデータを分散して保存して利用可能 容量が不足しても単純にサーバを追加することで増設可能容易に手に入るコモディティなサーバで利用可能 Hadoop を構成するサーバとして、特別な製品は不要データは複製して分散配置、処理も異常時にはリトライ 特定のスレーブサーバが故障してもサービスは継続できる仕組み 9 OSC 2012 Tokyo/Spring
  10. 10. Hadoop と RDBMS の違い その 1: データ格納 Hadoop : 自由に格納、処理するときに意味づけ RDBMS : 格納するときに定義、正規化された状態で保存 その 2: データアクセス Hadoop : シーケンシャルアクセス RDBMS : ランダムアクセス その 3: 処理の向き Hadoop : 大規模なデータを一気に処理 RDBMS : 小さなデータを高速に処理 両方の良いところを組み合わせて処理することが重要 10 OSC 2012 Tokyo/Spring
  11. 11. Hadoop のさまざまなバージョンHadoop のバージョン 1.0.X : 現在の stable ( 3/10 1.0.1 リリース) 0.20.203.X : 以前の stable 0.20.X : 以前の stable 1.1.X : beta 版 0.23.X : alpha 版、 MapReduce 2.0 対応 0.22.X : セキュリティ非対応版、先進的な機能とりあえず stable を利用すれば大丈夫 11 OSC 2012 Tokyo/Spring
  12. 12. Hadoop のさまざまなディストリビューションApache コミュニティ版CDH 版 Clouderas Distribution for including Apache Hadoop 0.20.2 ベースでパッチや新機能を追加したディストリビューションその他にも利用できる Hadoop 環境 Amazon Elastic MapReduce MapR Apache Hadoop for Windows Azure 12 OSC 2012 Tokyo/Spring
  13. 13. Hadoop の使い方Hadoop の使い方や事例について説明します 13 OSC 2012 Tokyo/Spring
  14. 14. Hadoop の使い方集計 ログデータなどをさまざまな観点で数えること抽出 多くのデータから必要な情報を取り出すこと分析 特定のデータを変形させて特性を見つけること 異なる種類のデータを組み合わせて特性を見つけること加工 あるデータを必要な情報に変化させること 14 OSC 2012 Tokyo/Spring
  15. 15. 事例 1: GE 社の製品に関する感性分析自社製品に関するつぶやき情報や記事を収集し、製品に対する評価を分析従来 MySQL で 50 時間要した処理を Hadoop では 30 分強で処理 異なるデータを組み合わせて 特性を見つけるアドレス : Hadoop World 2010 15 OSC 2012 Tokyo/Spring
  16. 16. 事例 2: CBS Interactive 社の統合環境自社が運営するさまざまな Web サイトのログを Hadoop で格納DWH やデータベースで扱うためのデータを生成 ログデータ集計 必要なデータを抽出アドレス : Hadoop World 2011 16 OSC 2012 Tokyo/Spring
  17. 17. Hadoop とその仲間たちHadoop エコシステムについて説明します 17 OSC 2012 Tokyo/Spring
  18. 18. 処理言語関係の関連技術より簡単に MapReduce を実行するためのツールも開発されていますApache Pig データフローによりデータをどのように処理するか定義 シンプルかつ少ない記述で、 MapReduce を意識せず実行Apache Hive SQL ライクな記法により処理内容を定義 SQL を知っている人にとって導入が容易 18 OSC 2012 Tokyo/Spring
  19. 19. カラム指向型データベースHadoop は、数時間~数日を数分~数十分に短縮する技術 秒未満の処理には、 Hadoop 単体では適用できませんApache HBase HDFS 上で動作するカラム指向型データベース “ 行キー”、”列ファミリ”、”値”、”タイムスタンプ” でデータを管理 行キーに対して低レイテンシーで読み書きを実現 Hadoop と同様にスケーラブルな仕組み 数百 TB 程度までの動作実績あり 19 OSC 2012 Tokyo/Spring
  20. 20. データ入出力の関連技術Hadoop 環境にデータを入出力する技術も開発されていますApache Flume 様々なログ・データを損失無く Hadoop 環境に格納する仕組み ZooKeeper (分散協調ソフトウェア)により高可用性を実現Apache Sqoop RDBMS と Hadoop 環境を連携させるコネクター MapReduce による分散処理でデータ通信を高速化 20 OSC 2012 Tokyo/Spring
  21. 21. Hadoop を動かそうデモとして仮想環境上で Hadoop を動かしてみます 21 OSC 2012 Tokyo/Spring
  22. 22. Hadoop の動作に必要なものHadoop : Apache 版 or CDH 版Java : Oracle Java6 (要 64bit )OS : RedHat 系 or Debian 系(要 64bit )動作させる環境 最初は手元の PC サーバで試してみる 本格的な運用ではコモディティな IA サーバを利用する CPU 2 ソケット、 MEM 24G ~ 48G 、 HDD 2TB×8 ~ 12 22 OSC 2012 Tokyo/Spring
  23. 23. Hadoop で MapReduce を実行する方法Java API による実装Hadoop Streaming により各種言語で実装 Python 、 Ruby 、 Perl など(コマンドも利用可能)各種処理言語 Apache Pig Apache Hive Asakusa Framework 23 OSC 2012 Tokyo/Spring
  24. 24. Java で MapReduce を実行するためにJava API で実装する内容は以下の内容です ジョブクラス : MapReduce ジョブ定義クラス Map クラス : map 処理用クラス Reduce クラス : reduce 処理用クラス 入力・出力フォーマットクラス : 入力方法、出力方法を定義 Partitioner クラス : データ集約方法の定義 データ型クラス : ジョブ内で扱うデータの定義 24 OSC 2012 Tokyo/Spring
  25. 25. 定義するクラスと MapReduce 処理の関係 ジョブクラス Shuffle <A, 10> <A, {10,25} > <B, 20> <C, {10,5,15} > Map <C, 15> Reduce <A, 35 > <D, 5> <C, 30 > Map <A, 25> <C, 10> Reduce クラス Map クラス <D, 10> <B, 30 > Reduce <B, 10> <D, 15 > Map <C, 5> <B, {20,10} > <D, {5,10} > Partitioner クラス 出力フォーマットクラス 入力フォーマットクラス 25 OSC 2012 Tokyo/Spring
  26. 26. Java で実装するポイント処理したい内容を中心に記述するため、記述量を削減 分散制御、ノード間通信、ディスク操作は意識しなくても実装可能各種ライブラリとの連携も容易 Hadoop の分散キャッシュ機構で容易に連携可能小さいサイズのデータとの連携も容易 これも Hadoop の分散キャッシュ機構を利用 26 OSC 2012 Tokyo/Spring
  27. 27. DEMO1: サンプルアプリケーションの実行HDFS 上のサンプルデータとローカルディスク上のマスターデータをMapReduce で結合させる処理を実行しますデモ用コード置き場 : https://gist.github.com/2179126 27 OSC 2012 Tokyo/Spring
  28. 28. DEMO1: サンプルアプリケーションの実行サンプルアプリケーションのソースコードについて説明します 28 OSC 2012 Tokyo/Spring
  29. 29. DEMO1: サンプルアプリケーションの実行実際にデモ環境でサンプルアプリケーションを実行します 29 OSC 2012 Tokyo/Spring
  30. 30. DEMO2: Hive で実行 DEMO1 のアプリケーションを Hive でも実行してみます Hive のテーブル sample テーブル : サンプルデータを格納するテーブル master テーブル : マスターデータを格納する外部テーブル SELECT 文を利用して DEMO1 と同じ処理を実行します デモ用コード置き場 : https://gist.github.com/2179126 30 OSC 2012 Tokyo/Spring
  31. 31. DEMO3: Pig で実行 DEMO1 のアプリケーションを Pig でも実行します デモ用コード置き場 : https://gist.github.com/2179126 31 OSC 2012 Tokyo/Spring
  32. 32. Hadoop のゆくえ今後の Hadoop はどこに向かうのでしょう? 32 OSC 2012 Tokyo/Spring
  33. 33. Hadoop の向かうところHadoop はカーネルになる ( Hadoop World 2011 より) データの蓄積、処理のコア 各種ツール、連携技術が確立Hadoop 自体も課題を着実に克服していきます NameNode HA : SPOF であった NameNode の HA 化 MapReduce 2.0 : MapReduce 環境の見直し Apache BigTop を軸にした Hadoop 構築・テスト環境より簡単に MapReduce を実行する仕組みも作られます Hive や Pig の強化、 Web 上からのシンプルな実行の仕組み etc... 33 OSC 2012 Tokyo/Spring
  34. 34. まとめ本セッションをまとめます 34 OSC 2012 Tokyo/Spring
  35. 35. まとめHadoop は 2 つのコンポーネントから構成されます HDFS MapReduceHadoop エコシステムは更に拡大します Hive や Pig で簡単に MapReduce を実行できますデータをためて、その都度、色々と分析・計算しましょう! 今あるデータを Hadoop を使って確実に集計しましょう 得られた結果を利用して Hadoop をより活用しましょう! 35 OSC 2012 Tokyo/Spring
  36. 36. Thank you …ご清聴ありがとうございました All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy. 36 OSC 2012 Tokyo/Spring

×