Hadoop スタートアップセミナー
Hadoopスタートアップセミナー
NECラーニング テクノロジー研修事業部
土井 正宏
OSS 体験セミナー
Hadoopの概要
▌高スケーラブルな分散管理基盤
▌2つのコア機能▌分散ファイルシステム(HDFS)
▌分散処理フレームワーク(Map/Reduce)
▌BigDataの管理基盤として注目
NEC Group Internal Use Only
OSOS
Hadoop分散ファイルシステム(HDFS)
OS
分散処理基盤(Map/Reduce)
Apache Hadoop(以下 Hadoop)は高い拡張性を持つ分散処理基盤ソフトウェアで、
BigData の管理基盤として注目されています。Hadoop は以下の機能を提供します。
分散ファイルシステム(HDFS)
複数サーバーの HDD を束ねて仮想的なファイルシステムを構成する機能
分散処理フレームワーク(Map/Reduce)
大量のデータに対する処理を複数のサーバーで実行する機能
Hadoop スタートアップセミナー
BigData概要
▌ 無尽蔵に増え続ける非構造データ(表で管理できない)
例:メール本文、つぶやき、アクセスログ・・・
▌ 更新は発生しない
一度送ったメール本文はあとから修正できない
▌ 解析→構造化が必要
そのままだとゴミデータの山
Page 3 © NEC Corporation 2010
社員の情報(表構造)
メール本文(非構造データ)
BigData とは無尽蔵に増え続けるデータのことです。BigData には以下の特徴があります。
非構造データ(例:電子メール、つぶやき、画像データなど)
非構造データとは、データ項目に分類できないデータのことです。例えば、社員の情
報は社員番号や社員名といった、全社員に共通する項目に分類できますが、社員が送付
したメールの本文は決まった項目に分類できません。
更新がない
BigData は一度送付した電子メールの内容は変更することができないように、基本的
には更新処理は発生しません。
メール以外にも、ブログ、つぶやき、画像データ、映像データ、GPS の位置情報、アクセス
ログといったデータも BigData に分類されます。
BigData はそのままの状態では情報がまとまっていないため、ビジネスに活用できません。
よって、共通する項目を見つけ出してデータを構造化する必要があります。
OSS 体験セミナー
なぜBigDataが注目されているのか?
▌ 今まではBigDataをビジネスに活用できなかった
長期的に保存できない(大容量のストレージが必要)
解析処理に大量のCPUリソースを食う
▌ 古いデータは削除
▌ Hadoopの登場によりBigDataを活用しやすくなった
▌ BigDataの中にビジネスに有益な情報が眠っている
業績UP
新しいサービスの創出
Page 4 © NEC Corporation 2010
今まで企業は保有リソースの問題から、BigData をビジネスに活用することができませんで
したが、現在では Hadoop の登場によって、BigData を扱いやすくなりました。
一部の企業で BigData が活用され、その結果業績アップにつながった事例が報告されており、
現在注目を集めています。
Hadoop スタートアップセミナー
Hadoopの活用場面
BigData解析
DWH/BI
基幹系バッチ処理の高速化
センサーネットワーク
Page 5 © NEC Corporation 2010
Hadoop の活用場面は現在様々な企業で模索されておりますが、現状では主に以下の4つの
用途で活用できると考えられます。
BigData 解析
DWH/BI
基幹バッチ処理の高速化
センサーネットワーク
OSS 体験セミナー
BigData解析
▌ テキストマイニング
▌ ソーシャルメディア分析
つぶやき、ブログの解析
▌ 思いもよらなかった製品・サービスの強み、弱みを発見
Page 6 © NEC Corporation 2010
BigData収集 分析結果
好評・丌評若者に人気・・・etc
分析つぶやき
ブログ
BigData を分散処理により解析します。解析結果は DWH にロードし、従来の BI ツールで分
析することができます。
また、BigData は自社内だけにとどまらず、ソーシャルメディアの中にも存在しています。
例えば、ブログやつぶやきの文字列からキーワードを抜き出して整理、集計すると企業や製品の
好感度を把握することができます。
Hadoop スタートアップセミナー
DWH/BI
▌ レコメンドシステム(おすすめ)
RDBよりも高速に処理
▌ エコシステムの活用
Hive、Pig→構造データの解析
Page 7 © NEC Corporation 2010
購入履歴
分析 分析結果
ECサイト
アクセスログ
あなたへのおすすめ商品は…
DWH/BI 用途での活用例として、EC サイトの商品ページへのアクセスや購入履歴の分析結
果を「おすすめ商品」として提示する、レコメンドシステムが挙げられます。このような処理は
RDB でも実現できますが、Hadoop により、分析時間が格段に短縮された事例が報告されてい
ます。
また、この用途では明確な構造をもったデータを扱うことが多いので、Hive や Pig といった
関連プロダクトを活用することで、より効率よく分析できます。
OSS 体験セミナー
センサーネットワーク
▌ GPSや各種センサーが収集した情報を解析
▌ 渋滞予測、気象予報、電力予測・・・etc
Page 8 © NEC Corporation 2010
車載GPS
温度・湿度センサー
電力計
各種センサーが収集する情報の管理もまた、Hadoop が得意とする場面です。Hadoop のス
ケーラビリティにより、センサーが送り続けるデータを効率よく管理できます。
車載 GPS から渋滞を予測したり、スマートフォンの GPS からショッピングモール内の人の
流れを解析したり、電力計の情報から必要な電力量を予測するなどの用途で活用できると考えら
れます。
Hadoop スタートアップセミナー
基幹系バッチ処理の高速化
▌ Hadoopのスケーラビリティを活用して、一時的に超高性能な処理基盤を構築
▌ 月次、日次バッチ処理の高速化
▌ Iaasの活用
Page 9 © NEC Corporation 2010
平常時
バッチ処理実行時
バッチ処理終了
Hadoop のスケーラビリティを利用し、Hadoop クラスタを一時的なスーパーコンピュータ
ーとして利用することも考えられます。また、IaaS のサービスを活用すれば、自社内にリソー
スを所有する必要がなく、費用削減につながります。
OSS 体験セミナー
Hadoopクラスタの構成
▌ マスタースレーブ方式
▌ マスター
メタデータを管理(NameNode)
ジョブを監視(JobTracker)
▌ スレーブ
データを保存(DataNode)
タスクを実行(TaskTracker)
Page 10 © NEC Corporation 2010
マスターノード群
スレーブノード群
NameNode
Hadoopクラスタ
JobTracker SecondaryNameNode
TaskTrackerDataNode
TaskTrackerDataNode
TaskTrackerDataNode
Hadoop クラスタは構成するサーバー間に親子関係があり、親をマスターノード、子をスレ
ーブノードと言います(マスタースレーブ方式)。マスターノードとスレーブノードの役割は以
下の通りです。
マスターノード
NameNode:HDFS のメタデータを管理
JobTracker:Map/Reduce のタスクを監視
スレーブノード
DataNode:データブロックを保存
TaskTracker:Map/Reduce のタスクを実行
各プロセスは別々の物理サーバーで起動することもできますが、一般的に NameNode と
JobTracker、DataNode と TaskTracker をそれぞれ共存させます。
Hadoop スタートアップセミナー
分散ファイルシステム(HDFS)
▌ スレーブノード(DataNode)のディスクを仮想的に一台に見せる
▌ マシンを追加するだけで簡単に拡張可能
▌ データブロックに分割
▌ レプリカを保持
Page 11 © NEC Corporation 2010
100G 100G100G
300G
ブロックA
データBブロックC
ブロックA データB
ブロックC
ファイル
Hadoop のコア機能の一つである HDFS(Hadoop 分散ファイルシステム:Hadoop
Distributed File System)は、スレーブノードの HDD を束ねて、大容量の仮想ストレージを
構成します。空き容量が減ってきた際は、新規スレーブノードを立ち上げることで簡単に容量を
増やすことができます。
ファイルを HDFS 上に配置すると、データブロックという単位に分割されて、スレーブに配
置されます。各データブロックは障害に備え、別ノードにコピー(レプリカ)を持っています。
マスターノードがスレーブノードの死活監視を行っており、スレーブが停止すると該当するデー
タブロックのレプリカを作成します。この仕組みにより、常に一定数のレプリカが保障されます。
OSS 体験セミナー
ハンズオン
▌ HDFS上にローカルのファイルをアップロードします
▌ WebUI ( http://master:50070 )でクラスタの構成を確認
▌ HDFS上にディレクトリを作成
▌ HDFSにファイルをロード
▌ WebUI ( http://master:50070 )でファイルを確認
Page 12 © NEC Corporation 2010
本セミナーでは、講師マシンをマスターとする Hadoop クラスタを操作します。
1. WebUI(http://master:50070)からクラスタの構成を確認します。
Hadoop スタートアップセミナー
2. HDFS 上にディレクトリを作成します。端末を開き、以下のコマンドを実行します。
[hadoop@localhost ~]$ hadoop dfs -mkdir foo
[hadoop@localhost ~]$ hadoop dfs –ls
・・・
drwxr-xr-x - hadoop supergroup 0 2012-02-05 14:22 /user/hadoop/foo
・・・
3. ”data”ファイルを HDFS 上に配置します。
[hadoop@localhost ~]$ hadoop dfs -put data ./foo
※大きなサイズのファイルを配置するため、時間がかかります。
[hadoop@localhost ~]$ hadoop dfs -ls ./foo
Found 1 items
-rw-r--r-- 3 hadoop supergroup 256900332 2012-02-05 14:23 /user/hadoop/foo/data
4. アップロードしたファイルを WebUI から確認します。
「Brouse File System」→「user」→「hadoop」→「foo」→「data」の順にクリ
ックします。
4 ブロック×3 レプリカに分割されてい
ることを確認します。
OSS 体験セミナー
Map/Reduce
▌ 分散処理のフレームワーク
▌ Jobの自動管理
▌ データローカリティの実現
Page 13 © NEC Corporation 2010
プログラム(Job)
Job
Task
Task
Task
Task Task Task
JobをTaskに分解
Taskを実行
Map/Reduce は、Hadoop が提供する分散処理のフレームワークです。ユーザーは実行し
たい処理をジョブとして渡すと、JobTracker がタスクに分解し、各 TaskTracker に割り当
てます。TaskTracker は割り当てられたタスクを実行します。なお、従来の分散処理と違い、
ユーザーはタスク割り当てを意識する必要がありません。また、JobTracker がタスクの進行
を監視し、エラーが起きたタスクは再実行します。そのため、プログラムにエラー処理を記述す
る必要がありません。
スレーブノードは可能な限り、自分が管理するデータブロックを処理します。そのため、ノー
ド間のデータの通信が発生しにくく、ネットワークトラフィックを抑制できます。このことをデ
ータローカリティといいます1。
1 もしも処理対象のデータが別ノードに存在する場合は、ノード間の通信を行い、処理対象データを修得します
Hadoop スタートアップセミナー
Map/Reduceのしくみ
▌ Map
分析の対象となる<Key,Value>ペアを作成
▌ Shuffle&Sort
Keyの値でソートし集約
▌ Reduce
各<Key,Value>ペアに対し、処理を行う(例:Valueの値の合計値を求める)
Page 14 © NEC Corporation 2010
Map/Reduce の処理は以下の3つのフェーズで構成されています。ただし、Job を定義する
際に、ユーザーが指定するのは Map と Reduce の処理内容のみで、Shuffle&Sort については
定義する必要はありません。
Map
分析の対象になる<Key,Value>のペアを作成します。例えば、Hadoop のサンプルプ
ログラムに含まれる wordcount(文章中の英単語を数える)では、<単語,1>のペア作り
ます(例:<To,1>)
Shuffle&Sort
Map の実行結果を Key の値で集約し、<Key,Values>のペアを作ります。この処理は
自動的に行われます2(例:<To,1,1>)
Reduce
Values に対し、集計などの処理を行います。wordcount では、Values の値の合計
値を算出します(例:<To,2>)
2 Shuffle&Sortはネットワーク通信が発生しやすいため、ボトルネックになる傾向があります。そのため、Map処理で可能な限り
データの絞り込みを行うことがパフォーマンスチューニングのポイントの一つになります。
OSS 体験セミナー
ハンズオン
▌ Map/Reduceサンプルプログラムを実行(WordCount)
▌ 事前に用意されたプログラムでdataを解析
▌ WebUI ( http://master:50030 )でM/Rの進行を確認
▌ WebUI ( http://master:50070 )で出力ファイルを確認
Page 15 © NEC Corporation 2010
1. プログラムを実行します。HDFS 上の”data”ファイルに出現する単語をカウントし
ます。
[hadoop@localhost ~]$ hadoop jar WordCount.jar WordCount ./foo/data ./foo/output
Hadoop スタートアップセミナー
2. JobTracker の WebUI ( http://master:50030 )から Map/Reduce の進行を確認し
ます。画面に表示された job_id をチェックします。
…
12/02/05 14:54:44 INFO mapred.JobClient: Running job: job_201202051408_0002
12/02/05 14:54:45 INFO mapred.JobClient: map 0% reduce 0%
12/02/05 14:55:28 INFO mapred.JobClient: map 11% reduce 0%
12/02/05 14:55:29 INFO mapred.JobClient: map 19% reduce 0%
12/02/05 14:55:30 INFO mapred.JobClient: map 30% reduce 0%
12/02/05 14:55:31 INFO mapred.JobClient: map 43% reduce 0%
OSS 体験セミナー
3. NameNode の WebUI ( http://master:50070 )から作成されたファイルの中身を確
認します。
Hadoop スタートアップセミナー
Hadoop注意点(よくある誤解)
▌ Hadoopはデータベースではない(データベースの下のレイヤーに相当)
▌ 従来のデータベースに置き換わる技術ではない
▌ 共有ストレージとしての利用はできない
小さなファイルの管理には向かない
ファイルの中身の編集ができない
▌ 内容の変更がなく無尽蔵に増加していくBigDataの管理に特化
Page 16 © NEC Corporation 2010
OSOS
Hadoop
SQL
ServerOracle
OSOS
HBase
Hadoop はデータベースのソフトウェアではありません。HDFS はデータベースの下のレイ
ヤーに位置します。現在 HDFS 上にデータを格納するデータベースのソフトウェアとして、
NoSQL データベースの HBase が提供されています。
また、HDFS は共有ストレージとしての利用はできません。HDFS はシステム上、小さなフ
ァイルの格納には向きません。ファイル数が増えるとメタデータが増大し、NameNode を圧迫
するからです。また、Hadoop は IO 分散による高スループットを目的として設計されており、
低レイテンシな特性が求められる操作には向いていません。
さらに、HDFS 上のファイルは、メモ帳などで中身を変更することができません。以上のこ
とから、Hadoop は共有ストレージの代わりではなく、BigData の管理に特化した基盤ソフト
ウェアと言えます。
OSS 体験セミナー
Page 17
NECラーニングの研修サービス
▌ Hadoop基礎[コースコード:DB081]
1日コース:42,000円(税込)
マシン実習付き
今回のセミナー内容に加え、インストール、パラメーターの設定、データ書き込み・読み込み時の動作、Hadoopの関連プロダクトなどについて学習します
これからHadoopの導入を検討している技術者の方、営業部門の方、新入社員の方におすすめのコースです
▌ より実践的な後続コースも近日提供予定
提供開始時はHP、およびメールマガジンでアナウンスします
NEC Group Internal Use Only
Hadoop スタートアップセミナー
近日提供予定コース
▌ Cloudera Apache Hadoop 管理者向けトレーニング[コースコード:DB090]
▌ Cloudera Apache Hadoop 開発者向けトレーニング[コースコード:DB091]
▌ 提供開始のアナウンスは弊社HPまたはメールマガジンで行います。この機会に是非、RSSおよびメルマガ登録をお願いします!!!
Page 18 © NEC Corporation 2010
OSS 体験セミナー
Page 19 © NEC Corporation 2012