SlideShare a Scribd company logo
Hadoopの理解に ちょっと自信のない皆さんに贈る 40分でわかる Hadoop徹底入門 
日本Hadoopユーザー会 
濱野 賢一朗/Kenichiro Hamano (NTTデータ)
自己紹介 
 
濱野 賢一朗 (はまの けんいちろう) 
– 
日本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
Hadoopを一言でいうと・・・ 
並列分散処理を実現するミドルウェア 
 
複数のIAサーバを束ねて、 ひとつの大きな処理システムとして利用 
 
特に大量データの格納・処理に最適化 
 
HDDは今でも実質は 80MB/sec 程度が限界 
 
5TBのデータを読み込むのに 約 5*1000*1000 /80 = 62500秒 = 17.4時間 
 
この問題を解決するために、並列分散処理を活用
大量データの処理を実現するには 
データを複数のサーバに分割して格納 
利用時には、複数のサーバから、 それぞれのデータを同時に読み込む 
 
HDDの台数分だけのスループットを確保 
 
1台だと 80MB/sec 程度でも 
 
1000台だと 80GB/sec のスループット 5TBのデータを読み込みも 62.5 秒で実現
Hadoopの構成 (従来) 
大きく 2つのコンポーネントで構成 
 
分散ファイルシステム HDFS 
 
Hadoop Distributed File System 
 
並列分散処理フレームワーク MapReduce Framework 
 
アルゴリズム MapReduce を実現する 
どちらも Google が 発表した論文 のアイデアを 元に開発 されている
Hadoopの構成 (従来) 
 
集中管理型の分散システム 
 
データ管理や 分散処理ジョブ の管理は マスタサーバが 実施 
 
スレーブサーバは、 分散処理の 実行や データの実体を 保存 
Hadoopマスタサーバ 
Hadoopクライアント 
L2/L3スイッチ 
NameNode 
JobTracker 
L2スイッチ 
Hadoopスレーブサーバ群 
DataNode 
TaskTracker 
DataNode 
TaskTracker 
DataNode 
TaskTracker 
DataNode 
TaskTracker 
DataNode 
TaskTracker 
ディスク 
ディスク 
ディスク 
ディスク 
ディスク
分散ファイルシステム HDFS 
NameNode (Master) 
DataNode (Slave) 
クライアント 
② 
③ 
① 
① 
① 
ファイル 
Heartbeat 
メタ情報 管理 
ブロック 管理 
DataNode 状態監視 
ブロックの 保存 
1つのブロックを複数のDataNodeで保存 → 任意のDataNodeが故障してもデータを失わない 
ブロック 
① 
③ 
③ 
③ 
② 
② 
②
MapReduce (アルゴリズム) 
 
大量の件数のデータがあった時に、 複数ワーカーで 並列に処理できる仕組み 
 
例として、選挙の開票作業を想定 
– 
複数人で作業を分担して実施 
– 
最初に、投票用紙を分けて、 みんなで並行して投票者別に用紙を仕分ける 
– 
次に、投票者別の用紙を1カ所にまとめて、 それぞれの枚数を数える
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氏
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処理 分類・仕分けされた データごとに処理
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倍のスピード (相互に影響を受けずに作業できる)
MapReduce Framework 
JobTracker (MASTER) 
TaskTracker (SLAVE) 
クライアント 
② 
③ 
① 
タスク実行中 
タスク実行待ち 
タスク実行(競争)中 
MapReduce ジョブ管理 
タスク 管理 
Heartbeat 
TaskTracker 状態監視 
MapReduce ジョブ 
M 
R 
同じ処理の投機的実行 
データのローカリティを意識した タスクの実行 
Map 
Map 
Reduce 
M 
R 
M 
R 
M 
Map,Reduce タスクの実行
Hadoopの特徴 
 
HDFS 
 
大量のデータを高スループットに読み込める 
 
サーバが故障しても、データの安全性は担保 
MapReduce 
Map処理、Reduce処理のみを指定すれば (原則はJavaで処理を記述) あとはフレームワークが並列分散処理を実現 
ノード数を増やせば、基本スケール 
サーバが故障しても、ジョブは実行される
 
HDFS 
 
大量のデータを高スループットに読み込める 
 
サーバが故障しても、データの安全性は担保 
MapReduce 
Map処理、Reduce処理のみを指定すれば (原則はJavaで処理を記述) あとはフレームワークが並列分散処理 
ノード数を増やせば、基本スケール 
サーバが故障しても、ジョブは実行される 
Hadoopの特徴 
並列分散処理の 面倒な部分を 解決してくれる ミドルウェア
よくある誤解 
× 高速なRDBMS 
○ 大量データに特化したバッチ処理システム 
- オンライン処理には不向き (スループット優先) 
- 少量データには不向き 
- データそのものを管理する仕組みは内在しない
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)
データ保持のアプローチの違い 
データの「管理」は行わない。 処理が高いスループットを生み出す よう、非正規化する。 
データを「管理」するという 観点からデータの重複を 避けるために正規化する。 
正規化されたデータセット 
・・・ 
いくつかのデータセットを結合し、非正 規化したデータセット 
RDB 
Hadoop 
 
一度に走査する範囲を小さくする 
 
重複保持を排除する 
 
一度に走査する範囲を大きくする 論理的走査範囲を単純物理分割、並列処理する 
 
重複保持していても気にしない
よくある誤解 
× 高速なRDBMS 
○ 大量データに特化したバッチ処理システム 
- オンライン処理には不向き (スループット優先) 
- 少量データには不向き 
- データそのものを管理する仕組みは内在しない 
× 検索エンジン 
○ 検索インデックス作成にも利用される - 低レイテンシが要求される処理の前処理など
Hadoopの使い方 
 
他システムと組み合わせて利用 
Hadoop クラスタ 
RDB 
データ ソース 
RDB 
DWH 
検索 エンジン 
ユーザー アプリ 
BI、 可視化 ツール 
・クレンジング処理 
・データ突き合わせ 
・生データ格納 
・事前のデータ処理 
・事前計算済みデータの格納 ・オフロードした処理結果の書き戻し
Hadoopって どういう意味?? 
 
言葉に意味はない 
 
Hadoopの生みの親 Doug Cutting氏の 娘さんが、ゾウのぬいぐるみにつけた名前
誰が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 貢献ソースコード行数 (所属企業別)
Hadoopは何に利用できるのか? 
 
データ読み込みのスループットの最大化 → 全件データ (Big Data) 処理の実現 
 
ユーザーごとの個別のフィードバックの実現 (ソーシャルなサービス、レコメンドなど) 
 
並列分散処理によるバッチ処理の高速化 
→ データ件数の増大に対応
Hadoopの活用例 
 
過去のアクセス履歴を格納・処理して、ユーザーごとの 嗜好(特徴量)を抽出、コンテンツ最適化やレコメンド 
 
オンラインゲームなどのサービスにおいて、ユーザー行動 を分析して、解約低減やその効果の評価 
 
金融商品の現在価値計算 (中間データが肥大化する シミュレーション)、利用者ごとのリスク計算 
 
N:Nのデータの突き合わせが必要な名寄せ系処理 
 
PL/SQL等で多件数の小容量データを繰り返し取得・ 処理していた処理の高速化 (並列処理に) 
 
タービン、橋梁、自動車、航空機に付けたセンサーから のデータを格納・処理して故障検知、利用の効率化
Hadoopのいま 
Hadoopのこれから
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
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
YARN 
分散ファイルシステム HDFS 
バッチ処理 
MapReduce 
従来のHadoop 
分散ファイルシステム 
HDFS 
バッチ処理 
MapReduce2 
これからのHadoop 
リソース制御 
YARN 
 
並列分散処理フレームワークからリソース制御の レイヤを切り出された
YARNを使いこなすと・・・ 
分散ファイルシステム 
HDFS 
バッチ処理 MapReduce2 
リソース制御 
YARN 
ストリーム処理 Storm 
・・・・・・ 
インメモリ分散処理 Spark 
 
YARNにより単一クラスタ内に複数の分散処理アーキテ クチャを同居可能に → 蓄積済みの大量データを移動することなく、 同一計算リソースで多様な処理を実現
定番のHadoopエコシステム 
HDFS 
MapReduce 
Pig 
Hive 
Mahout 
Hadoop上で機械学習を容易に 実行するためのライブラリ群 レコメンドなどを簡単に実装 
SQLライクな言語で MapReduceを実行 
データの流れを 記述する独自言語で MapReduceを実行 並列処理記述に向く 
HBase 
カラム指向型Key-Value ストア 
データの追記や少量デー タの扱いを容易に実現 
Asakusa 
業務システムの バッチを高速処理する ためのフレームワーク 独自言語から MapReduceを 生成実行 
 
便利に活用できる周辺ソフトウェアが充実 
 
これらをパッケージングしているのが、Hadoopディストリ ビューション
SQL on Hadoop への注目 
 
急速な成長が見られる分野 
 
新規利用者には期待感が高い? 
 
BI/可視化ツールとの親和性 
 
JDBC/ODBCドライバの利用 
 
SQL-92等のサポート 
 
MPP型の低レイテンシクリエ実行 
 
Schema-on-Read 
 
DAG型/インメモリデータ処理系 で実現 
 
MapReduce以外のデータ処理方式を採用
SQL on Hadoop への注目 
 
急速な成長が見られる分野 
 
新規利用者には期待感が高い? 
 
BI/可視化ツールとの親和性 
 
JDBC/ODBCドライバの利用 
 
SQL-92等のサポート 
 
MPP型の低レイテンシクリエ実行 
 
Schema-on-Read 
 
DAG型/インメモリデータで実現 
 
MapReduce以外のデータ処理方式を採用 
【要注意!】 
適当なSQLを書けば/ 
今までのSQLをそのまま 
実行するのが得策とは 
限らない 
・RDBとは違う処理系 ・オプティマイザの洗練具合
まとめ 
 
Hadoopは大量データを並列分散で 格納・処理するための仕組み 
 
Hadoopはまだまだ成長中 複数の並列分散処理系を使いこなす方向 SQL on Hadoop の実現 
 
もっと具体的に知りたい という方は、 『Hadoop徹底入門 第2版』 (翔泳社) を ぜひ読んでみてください!
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ユーザー会 主催 ライトニングトークセッション プログラム @ミニステージ
ご静聴ありがとうございました 
日本Hadoopユーザー会の 活動への応援、 引き続きよろしくお願いします

More Related Content

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

  • 1. Hadoopの理解に ちょっと自信のない皆さんに贈る 40分でわかる Hadoop徹底入門 日本Hadoopユーザー会 濱野 賢一朗/Kenichiro Hamano (NTTデータ)
  • 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. Hadoopを一言でいうと・・・ 並列分散処理を実現するミドルウェア  複数のIAサーバを束ねて、 ひとつの大きな処理システムとして利用  特に大量データの格納・処理に最適化  HDDは今でも実質は 80MB/sec 程度が限界  5TBのデータを読み込むのに 約 5*1000*1000 /80 = 62500秒 = 17.4時間  この問題を解決するために、並列分散処理を活用
  • 4. 大量データの処理を実現するには データを複数のサーバに分割して格納 利用時には、複数のサーバから、 それぞれのデータを同時に読み込む  HDDの台数分だけのスループットを確保  1台だと 80MB/sec 程度でも  1000台だと 80GB/sec のスループット 5TBのデータを読み込みも 62.5 秒で実現
  • 5. Hadoopの構成 (従来) 大きく 2つのコンポーネントで構成  分散ファイルシステム HDFS  Hadoop Distributed File System  並列分散処理フレームワーク MapReduce Framework  アルゴリズム MapReduce を実現する どちらも Google が 発表した論文 のアイデアを 元に開発 されている
  • 6. Hadoopの構成 (従来)  集中管理型の分散システム  データ管理や 分散処理ジョブ の管理は マスタサーバが 実施  スレーブサーバは、 分散処理の 実行や データの実体を 保存 Hadoopマスタサーバ Hadoopクライアント L2/L3スイッチ NameNode JobTracker L2スイッチ Hadoopスレーブサーバ群 DataNode TaskTracker DataNode TaskTracker DataNode TaskTracker DataNode TaskTracker DataNode TaskTracker ディスク ディスク ディスク ディスク ディスク
  • 7. 分散ファイルシステム HDFS NameNode (Master) DataNode (Slave) クライアント ② ③ ① ① ① ファイル Heartbeat メタ情報 管理 ブロック 管理 DataNode 状態監視 ブロックの 保存 1つのブロックを複数のDataNodeで保存 → 任意のDataNodeが故障してもデータを失わない ブロック ① ③ ③ ③ ② ② ②
  • 8. MapReduce (アルゴリズム)  大量の件数のデータがあった時に、 複数ワーカーで 並列に処理できる仕組み  例として、選挙の開票作業を想定 – 複数人で作業を分担して実施 – 最初に、投票用紙を分けて、 みんなで並行して投票者別に用紙を仕分ける – 次に、投票者別の用紙を1カ所にまとめて、 それぞれの枚数を数える
  • 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. 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. 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. MapReduce Framework JobTracker (MASTER) TaskTracker (SLAVE) クライアント ② ③ ① タスク実行中 タスク実行待ち タスク実行(競争)中 MapReduce ジョブ管理 タスク 管理 Heartbeat TaskTracker 状態監視 MapReduce ジョブ M R 同じ処理の投機的実行 データのローカリティを意識した タスクの実行 Map Map Reduce M R M R M Map,Reduce タスクの実行
  • 13. Hadoopの特徴  HDFS  大量のデータを高スループットに読み込める  サーバが故障しても、データの安全性は担保 MapReduce Map処理、Reduce処理のみを指定すれば (原則はJavaで処理を記述) あとはフレームワークが並列分散処理を実現 ノード数を増やせば、基本スケール サーバが故障しても、ジョブは実行される
  • 14.  HDFS  大量のデータを高スループットに読み込める  サーバが故障しても、データの安全性は担保 MapReduce Map処理、Reduce処理のみを指定すれば (原則はJavaで処理を記述) あとはフレームワークが並列分散処理 ノード数を増やせば、基本スケール サーバが故障しても、ジョブは実行される Hadoopの特徴 並列分散処理の 面倒な部分を 解決してくれる ミドルウェア
  • 15. よくある誤解 × 高速なRDBMS ○ 大量データに特化したバッチ処理システム - オンライン処理には不向き (スループット優先) - 少量データには不向き - データそのものを管理する仕組みは内在しない
  • 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. データ保持のアプローチの違い データの「管理」は行わない。 処理が高いスループットを生み出す よう、非正規化する。 データを「管理」するという 観点からデータの重複を 避けるために正規化する。 正規化されたデータセット ・・・ いくつかのデータセットを結合し、非正 規化したデータセット RDB Hadoop  一度に走査する範囲を小さくする  重複保持を排除する  一度に走査する範囲を大きくする 論理的走査範囲を単純物理分割、並列処理する  重複保持していても気にしない
  • 18. よくある誤解 × 高速なRDBMS ○ 大量データに特化したバッチ処理システム - オンライン処理には不向き (スループット優先) - 少量データには不向き - データそのものを管理する仕組みは内在しない × 検索エンジン ○ 検索インデックス作成にも利用される - 低レイテンシが要求される処理の前処理など
  • 19. Hadoopの使い方  他システムと組み合わせて利用 Hadoop クラスタ RDB データ ソース RDB DWH 検索 エンジン ユーザー アプリ BI、 可視化 ツール ・クレンジング処理 ・データ突き合わせ ・生データ格納 ・事前のデータ処理 ・事前計算済みデータの格納 ・オフロードした処理結果の書き戻し
  • 20. Hadoopって どういう意味??  言葉に意味はない  Hadoopの生みの親 Doug Cutting氏の 娘さんが、ゾウのぬいぐるみにつけた名前
  • 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. Hadoopは何に利用できるのか?  データ読み込みのスループットの最大化 → 全件データ (Big Data) 処理の実現  ユーザーごとの個別のフィードバックの実現 (ソーシャルなサービス、レコメンドなど)  並列分散処理によるバッチ処理の高速化 → データ件数の増大に対応
  • 23. Hadoopの活用例  過去のアクセス履歴を格納・処理して、ユーザーごとの 嗜好(特徴量)を抽出、コンテンツ最適化やレコメンド  オンラインゲームなどのサービスにおいて、ユーザー行動 を分析して、解約低減やその効果の評価  金融商品の現在価値計算 (中間データが肥大化する シミュレーション)、利用者ごとのリスク計算  N:Nのデータの突き合わせが必要な名寄せ系処理  PL/SQL等で多件数の小容量データを繰り返し取得・ 処理していた処理の高速化 (並列処理に)  タービン、橋梁、自動車、航空機に付けたセンサーから のデータを格納・処理して故障検知、利用の効率化
  • 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
  • 27. YARN 分散ファイルシステム HDFS バッチ処理 MapReduce 従来のHadoop 分散ファイルシステム HDFS バッチ処理 MapReduce2 これからのHadoop リソース制御 YARN  並列分散処理フレームワークからリソース制御の レイヤを切り出された
  • 28. YARNを使いこなすと・・・ 分散ファイルシステム HDFS バッチ処理 MapReduce2 リソース制御 YARN ストリーム処理 Storm ・・・・・・ インメモリ分散処理 Spark  YARNにより単一クラスタ内に複数の分散処理アーキテ クチャを同居可能に → 蓄積済みの大量データを移動することなく、 同一計算リソースで多様な処理を実現
  • 29. 定番のHadoopエコシステム HDFS MapReduce Pig Hive Mahout Hadoop上で機械学習を容易に 実行するためのライブラリ群 レコメンドなどを簡単に実装 SQLライクな言語で MapReduceを実行 データの流れを 記述する独自言語で MapReduceを実行 並列処理記述に向く HBase カラム指向型Key-Value ストア データの追記や少量デー タの扱いを容易に実現 Asakusa 業務システムの バッチを高速処理する ためのフレームワーク 独自言語から MapReduceを 生成実行  便利に活用できる周辺ソフトウェアが充実  これらをパッケージングしているのが、Hadoopディストリ ビューション
  • 30. SQL on Hadoop への注目  急速な成長が見られる分野  新規利用者には期待感が高い?  BI/可視化ツールとの親和性  JDBC/ODBCドライバの利用  SQL-92等のサポート  MPP型の低レイテンシクリエ実行  Schema-on-Read  DAG型/インメモリデータ処理系 で実現  MapReduce以外のデータ処理方式を採用
  • 31. SQL on Hadoop への注目  急速な成長が見られる分野  新規利用者には期待感が高い?  BI/可視化ツールとの親和性  JDBC/ODBCドライバの利用  SQL-92等のサポート  MPP型の低レイテンシクリエ実行  Schema-on-Read  DAG型/インメモリデータで実現  MapReduce以外のデータ処理方式を採用 【要注意!】 適当なSQLを書けば/ 今までのSQLをそのまま 実行するのが得策とは 限らない ・RDBとは違う処理系 ・オプティマイザの洗練具合
  • 32. まとめ  Hadoopは大量データを並列分散で 格納・処理するための仕組み  Hadoopはまだまだ成長中 複数の並列分散処理系を使いこなす方向 SQL on Hadoop の実現  もっと具体的に知りたい という方は、 『Hadoop徹底入門 第2版』 (翔泳社) を ぜひ読んでみてください!
  • 33. 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ユーザー会 主催 ライトニングトークセッション プログラム @ミニステージ