Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)

87,171 views

Published on

■Hadoopの理解にちょっと自信のない皆さんに贈る
 40分でわかるHadoop徹底入門
(Cloudera World Tokyo 2014 講演資料)

日本Hadoopユーザー会
濱野 賢一朗/Kenichiro Hamano (NTTデータ)

Published in: Technology
  • Be the first to comment

40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)

  1. 1. Hadoopの理解に ちょっと自信のない皆さんに贈る 40分でわかる Hadoop徹底入門 日本Hadoopユーザー会 濱野 賢一朗/Kenichiro Hamano (NTTデータ)
  2. 2. 自己紹介  濱野 賢一朗 (はまの けんいちろう) – 日本Hadoopユーザー会のメンバとして、 イベント Hadoop Conference Japan や 勉強会 Hadoopソースコードリーディング の企画・実施を担当 – 翔泳社 『Hadoop徹底入門』 監修者 – NTT DATA 基盤システム事業本部 OSSプロフェッショナルサービス に所属 – Hadoop 関係者で話題になった 「経産省の報告書」 の実証事業のPM 平成21年度 産学連携ソフトウェア工学実践事業報告書 高信頼クラウド実現用ソフトウェア開発(分散制御処理技術等に係るデータセンター高信頼化に向けた実証事業) http: //www.meti.go.jp/policy/mono_info_service/joho/downloadfiles/2010software_research/clou_dist_software.pdf
  3. 3. Hadoopを一言でいうと・・・ 並列分散処理を実現するミドルウェア  複数のIAサーバを束ねて、 ひとつの大きな処理システムとして利用  特に大量データの格納・処理に最適化  HDDは今でも実質は 80MB/sec 程度が限界  5TBのデータを読み込むのに 約 5*1000*1000 /80 = 62500秒 = 17.4時間  この問題を解決するために、並列分散処理を活用
  4. 4. 大量データの処理を実現するには データを複数のサーバに分割して格納 利用時には、複数のサーバから、 それぞれのデータを同時に読み込む  HDDの台数分だけのスループットを確保  1台だと 80MB/sec 程度でも  1000台だと 80GB/sec のスループット 5TBのデータを読み込みも 62.5 秒で実現
  5. 5. Hadoopの構成 (従来) 大きく 2つのコンポーネントで構成  分散ファイルシステム HDFS  Hadoop Distributed File System  並列分散処理フレームワーク MapReduce Framework  アルゴリズム MapReduce を実現する どちらも Google が 発表した論文 のアイデアを 元に開発 されている
  6. 6. Hadoopの構成 (従来)  集中管理型の分散システム  データ管理や 分散処理ジョブ の管理は マスタサーバが 実施  スレーブサーバは、 分散処理の 実行や データの実体を 保存 Hadoopマスタサーバ Hadoopクライアント L2/L3スイッチ NameNode JobTracker L2スイッチ Hadoopスレーブサーバ群 DataNode TaskTracker DataNode TaskTracker DataNode TaskTracker DataNode TaskTracker DataNode TaskTracker ディスク ディスク ディスク ディスク ディスク
  7. 7. 分散ファイルシステム HDFS NameNode (Master) DataNode (Slave) クライアント ② ③ ① ① ① ファイル Heartbeat メタ情報 管理 ブロック 管理 DataNode 状態監視 ブロックの 保存 1つのブロックを複数のDataNodeで保存 → 任意のDataNodeが故障してもデータを失わない ブロック ① ③ ③ ③ ② ② ②
  8. 8. MapReduce (アルゴリズム)  大量の件数のデータがあった時に、 複数ワーカーで 並列に処理できる仕組み  例として、選挙の開票作業を想定 – 複数人で作業を分担して実施 – 最初に、投票用紙を分けて、 みんなで並行して投票者別に用紙を仕分ける – 次に、投票者別の用紙を1カ所にまとめて、 それぞれの枚数を数える
  9. 9. MapReduce (アルゴリズム) Aさん Bさん Cさん ①用紙を適当に3つに分ける ・・ ・ ・・ ・ ・・ ・ a氏 b氏 e氏 a氏 b氏 e氏 a氏 b氏 e氏 ②3人で並行して、 投票者別に用紙を 仕分ける 第1段階 第2段階 第3段階 ④3人で並行して、 投票者ごとに 枚数を数える a氏の 得票数 b氏の 得票数 d氏の 得票数 e氏の 得票数 c氏の 得票数 投票 結果 Aさん Bさん Cさん a氏 e氏 ③投票者ごと 用紙を集める d氏 c氏 b氏
  10. 10. MapReduce (アルゴリズム) ・・ ・ ・・ ・ ・・ ・ Aさん Bさん Cさん a氏 b氏 E氏 a氏 b氏 e氏 a氏 b氏 e氏 ①用紙を適当に3つに分ける ②3人で並行して、 投票者別に用紙を 仕分ける a氏 e氏 ③投票者ごと 用紙を集める ④3人で並行して、 投票者ごとに 枚数を数える a氏の 得票数 b氏の 得票数 d氏の 得票数 e氏の 得票数 c氏の 得票数 第1段階 第2段階 第3段階 投票 結果 Aさん Bさん Cさん d氏 c氏 b氏 Map処理 データを分類・仕分け Reduce処理 分類・仕分けされた データごとに処理
  11. 11. MapReduce (アルゴリズム) ・・ ・ ・・ ・ ・・ ・ Aさん Bさん Cさん a氏 b氏 E氏 a氏 b氏 e氏 a氏 b氏 e氏 ①用紙を適当に3つに分ける ②3人で並行して、 投票者別に用紙を 仕分ける a氏 e氏 ③投票者ごと 用紙を集める ④3人で並行して、 投票者ごとに 枚数を数える a氏の 得票数 b氏の 得票数 d氏の 得票数 e氏の 得票数 c氏の 得票数 第1段階 第2段階 第3段階 投票 結果 Aさん Bさん Cさん d氏 c氏 b氏 N人でやれば N倍のスピード (相互に影響を受けずに作業できる) N人でやれば 約N倍のスピード (相互に影響を受けずに作業できる)
  12. 12. MapReduce Framework JobTracker (MASTER) TaskTracker (SLAVE) クライアント ② ③ ① タスク実行中 タスク実行待ち タスク実行(競争)中 MapReduce ジョブ管理 タスク 管理 Heartbeat TaskTracker 状態監視 MapReduce ジョブ M R 同じ処理の投機的実行 データのローカリティを意識した タスクの実行 Map Map Reduce M R M R M Map,Reduce タスクの実行
  13. 13. Hadoopの特徴  HDFS  大量のデータを高スループットに読み込める  サーバが故障しても、データの安全性は担保 MapReduce Map処理、Reduce処理のみを指定すれば (原則はJavaで処理を記述) あとはフレームワークが並列分散処理を実現 ノード数を増やせば、基本スケール サーバが故障しても、ジョブは実行される
  14. 14.  HDFS  大量のデータを高スループットに読み込める  サーバが故障しても、データの安全性は担保 MapReduce Map処理、Reduce処理のみを指定すれば (原則はJavaで処理を記述) あとはフレームワークが並列分散処理 ノード数を増やせば、基本スケール サーバが故障しても、ジョブは実行される Hadoopの特徴 並列分散処理の 面倒な部分を 解決してくれる ミドルウェア
  15. 15. よくある誤解 × 高速なRDBMS ○ 大量データに特化したバッチ処理システム - オンライン処理には不向き (スループット優先) - 少量データには不向き - データそのものを管理する仕組みは内在しない
  16. 16. Hadoopの適用領域 秒 分 時 日 データのレイテンシ バッチ 処理 リアル タイム 処理 データサイズ 少ない 多い オンライン処理 汎用検索 GB(ギガバイト) TB(テラバイト) PB(ペタバイト) オンバッチ処理 純バッチ処理 Hadoopの適用領域 RDBMSの適用領域 (Hadoop World NYC 2011でのNTTデータ講演資料より、http://www.slideshare.net/cloudera/hadoop-world- 2011-hadoops-life-in-enterprise-systems-y-masatani-ntt-data)
  17. 17. データ保持のアプローチの違い データの「管理」は行わない。 処理が高いスループットを生み出す よう、非正規化する。 データを「管理」するという 観点からデータの重複を 避けるために正規化する。 正規化されたデータセット ・・・ いくつかのデータセットを結合し、非正 規化したデータセット RDB Hadoop  一度に走査する範囲を小さくする  重複保持を排除する  一度に走査する範囲を大きくする 論理的走査範囲を単純物理分割、並列処理する  重複保持していても気にしない
  18. 18. よくある誤解 × 高速なRDBMS ○ 大量データに特化したバッチ処理システム - オンライン処理には不向き (スループット優先) - 少量データには不向き - データそのものを管理する仕組みは内在しない × 検索エンジン ○ 検索インデックス作成にも利用される - 低レイテンシが要求される処理の前処理など
  19. 19. Hadoopの使い方  他システムと組み合わせて利用 Hadoop クラスタ RDB データ ソース RDB DWH 検索 エンジン ユーザー アプリ BI、 可視化 ツール ・クレンジング処理 ・データ突き合わせ ・生データ格納 ・事前のデータ処理 ・事前計算済みデータの格納 ・オフロードした処理結果の書き戻し
  20. 20. Hadoopって どういう意味??  言葉に意味はない  Hadoopの生みの親 Doug Cutting氏の 娘さんが、ゾウのぬいぐるみにつけた名前
  21. 21. 誰がHadoopを作っているのか  最初にプロジェクトを始めたのは Yahoo!  Hortonworks、Clouderaが ソースコードの貢献量の上位  日本からは NTT & NTTデータも ランクイン (第9位) 出典: http://ajisakaa.blogspot.com/2014/02/the-activities-of-apache-hadoop.html http://hortonworks.com/blog/innovations-contributions-apache-hadoop/ 2013年 Hadoop 貢献ソースコード行数 (所属企業別)
  22. 22. Hadoopは何に利用できるのか?  データ読み込みのスループットの最大化 → 全件データ (Big Data) 処理の実現  ユーザーごとの個別のフィードバックの実現 (ソーシャルなサービス、レコメンドなど)  並列分散処理によるバッチ処理の高速化 → データ件数の増大に対応
  23. 23. Hadoopの活用例  過去のアクセス履歴を格納・処理して、ユーザーごとの 嗜好(特徴量)を抽出、コンテンツ最適化やレコメンド  オンラインゲームなどのサービスにおいて、ユーザー行動 を分析して、解約低減やその効果の評価  金融商品の現在価値計算 (中間データが肥大化する シミュレーション)、利用者ごとのリスク計算  N:Nのデータの突き合わせが必要な名寄せ系処理  PL/SQL等で多件数の小容量データを繰り返し取得・ 処理していた処理の高速化 (並列処理に)  タービン、橋梁、自動車、航空機に付けたセンサーから のデータを格納・処理して故障検知、利用の効率化
  24. 24. Hadoopのいま Hadoopのこれから
  25. 25. Hadoopは 絶賛 進化中 2014 2010 2011 2013 2012 2009 branch-2 2.2.0 2.3.0 2.4.0 2.0.0-alpha 2.1.0-beta branch-1 (branch-0.20) 1.0.0 1.1.0 1.2.1(stable) 0.20.1 0.20.205 0.22.0 0.21.0 New append Security 0.23.0 0.23.11(final) NameNode Federation, YARN NameNode HA HDFS Snapshots NFSv3 support Windows Heterogeneous storage HDFS in-memory caching HDFS ACLs HDFS Rolling Upgrades Application History Server RM Automatic Failover
  26. 26. YARN 分散ファイルシステム HDFS バッチ処理 MapReduce 従来のHadoop 分散ファイルシステム HDFS バッチ処理 MapReduce2 これからのHadoop リソース制御 YARN  並列分散処理フレームワークからリソース制御の レイヤを切り出された
  27. 27. YARNを使いこなすと・・・ 分散ファイルシステム HDFS バッチ処理 MapReduce2 リソース制御 YARN ストリーム処理 Storm ・・・・・・ インメモリ分散処理 Spark  YARNにより単一クラスタ内に複数の分散処理アーキテ クチャを同居可能に → 蓄積済みの大量データを移動することなく、 同一計算リソースで多様な処理を実現
  28. 28. 定番のHadoopエコシステム HDFS MapReduce Pig Hive Mahout Hadoop上で機械学習を容易に 実行するためのライブラリ群 レコメンドなどを簡単に実装 SQLライクな言語で MapReduceを実行 データの流れを 記述する独自言語で MapReduceを実行 並列処理記述に向く HBase カラム指向型Key-Value ストア データの追記や少量デー タの扱いを容易に実現 Asakusa 業務システムの バッチを高速処理する ためのフレームワーク 独自言語から MapReduceを 生成実行  便利に活用できる周辺ソフトウェアが充実  これらをパッケージングしているのが、Hadoopディストリ ビューション
  29. 29. SQL on Hadoop への注目  急速な成長が見られる分野  新規利用者には期待感が高い?  BI/可視化ツールとの親和性  JDBC/ODBCドライバの利用  SQL-92等のサポート  MPP型の低レイテンシクリエ実行  Schema-on-Read  DAG型/インメモリデータ処理系 で実現  MapReduce以外のデータ処理方式を採用
  30. 30. SQL on Hadoop への注目  急速な成長が見られる分野  新規利用者には期待感が高い?  BI/可視化ツールとの親和性  JDBC/ODBCドライバの利用  SQL-92等のサポート  MPP型の低レイテンシクリエ実行  Schema-on-Read  DAG型/インメモリデータで実現  MapReduce以外のデータ処理方式を採用 【要注意!】 適当なSQLを書けば/ 今までのSQLをそのまま 実行するのが得策とは 限らない ・RDBとは違う処理系 ・オプティマイザの洗練具合
  31. 31. まとめ  Hadoopは大量データを並列分散で 格納・処理するための仕組み  Hadoopはまだまだ成長中 複数の並列分散処理系を使いこなす方向 SQL on Hadoop の実現  もっと具体的に知りたい という方は、 『Hadoop徹底入門 第2版』 (翔泳社) を ぜひ読んでみてください!
  32. 32. 12:40~12:55 Hadoopトレーニング番外編 川崎 達夫 (Cloudera) 12:55~13:10 インメモリ/分散並列処理対応のビジネス インテリジェンス(BI)ソリューションでHadoopデータを活用する 畝見 真 (SAS Institute Japan) 13:10~13:25 Hadoop 2.6の最新機能 鯵坂 明 (NTTデータ) 13:30~13:45 Fluentd: Unified Logging Layer Masahiro Nakagawa (Treasure Data) 13:45~14:00 Ansibleで構成管理を始める人のモチベーションを高めたい! 土橋 昌 (NTTデータ) 14:15~14:25 Hadoop内データに基づく簡単・高速モデリングの実現 畝見 真 (SAS Institute Japan) 15:10~15:25 マイクロソフトのHadoopへの取り組みと活用事例 佐々木 邦暢 (日本マイクロソフト) 15:25~15:40 Hadoop使い易くする Asakusa Framework はじめの一歩 中田 明 (ノーチラス・テクノロジーズ) 15:40~15:55 EAI国内シェアNo.1の「ASTERIA WARP」と Hadoopをつないでみた。 森 一弥 (インフォテリア) 16:10~16:20 HDPをWindowsで動かしてみた 安達 仁 16:20~16:35 Spark と Tez で性能比較 oza 16:35~16:50 Apache Drill でたしなむセルフサービスデータ探索 草薙 昭彦 (MapR Technologies) ドリンク パーティー Hadoop用の標準GUI、Hueの最新情報2 川崎 達夫 (Cloudera) OfflineImageViewerの変遷 鯵坂 明 (NTTデータ) SQL for Everything Masahiro Nakagawa (Treasure Data) SASによるストリーミング処理とHadoop上でのモデル開発 松園 和久 (SAS Institute Japan) はじめてのHadoopパッチ投稿! 大山 真実 日本Hadoopユーザー会 主催 ライトニングトークセッション プログラム @ミニステージ
  33. 33. ご静聴ありがとうございました 日本Hadoopユーザー会の 活動への応援、 引き続きよろしくお願いします

×