• 検索結果がありません。

無料セミナー資料:ビッグデータ管理基盤ソフトウェアHadoop入門

N/A
N/A
Protected

Academic year: 2021

シェア "無料セミナー資料:ビッグデータ管理基盤ソフトウェアHadoop入門"

Copied!
25
0
0

読み込み中.... (全文を見る)

全文

(1)

ビッグデータ管理基盤ソフトウェア

Hadoop入門

NECラーニング テクノロジー研修事業部 土井 正宏

(2)

アジェンダ

Hadoopとは?

HDFSの概要

Map/Reduceのしくみ

Hadoopのエコシステム(関連製品)

Hadoop 0.23について

(3)

Hadoopの概要

高スケーラブルな分散管理基盤

グリッドコンピューティング

2つのコア機能

▌分散ファイルシステム(HDFS) ▌分散処理フレームワーク(Map/Reduce)

高スケーラブル(簡単かつ大規模に拡張可能)

NEC Group Internal Use Only

OS

OS OS

分散処理基盤(Map/Reduce) 分散ファイルシステム(HDFS)

(4)

Hadoopの歴史

Google社が検索インデックスを作成するために使用していた技術

 GFS(Google File System):クローラが収集したドキュメントを格納するための 分散ストレージ  Map/Reduce:収集した膨大なドキュメントを解析し、検索インデックスを構築す るための分散処理基盤

Doug Cutting氏らにより、GFSとMap/Reduceのオープンソースクローン

が開発される⇒

Hadoop

GFS

Map/Reduce

HDFS

Map/Reduce

(5)

Hadoopのバージョン

最新安定版は1.0(0.20.205)

最新版は0.23(今後2.0になる?)

参考文献:

http://www.cloudera.co.jp/hadoop/column/apache-hadoop-1-update.html

Page 5 © NEC Corporation 2010

0.20系

0.23系

0.20

1.0

0.23

Trunk(新機能をマージ)

※1.0のリリースと0.23のリリースは時系列的 に前後しているが、実際は0.23より前にリ リースされた0.20.205に番号を振りなおした だけ(機能的差異はほとんどない)

(6)

Hadoopクラスタの構成

マスターノード群 スレーブノード群 NameNode JobTracker Secondary NameNode TaskTracker

DataNode TaskTracker DataNode

TaskTracker DataNode

マスタースレーブ方式

 マスター:スレーブ=1:多

マスター

 HDFSのメタデータを管理 (NameNode)  ジョブを監視(JobTracker)

スレーブ

 データを保存(DataNode)  タスクを実行(TaskTracker)

(7)

分散ファイルシステム(HDFS)

スレーブノード(DataNode)のディスクを仮想的に一台に見せる

マシンを追加するだけで簡単に拡張可能

ファイルをデータブロックに分割

常に一定数のレプリカ(ブロックのコピー)を保持

Page 7 © NEC Corporation 2010

100G 100G 100G

300

G

ブロックA ブロックA ブロックB ブロックB ブロックC ブロックC ファイル ブロックA ブロックB ブロックC

(8)

分散ファイルシステム(HDFS)

NameNodeがブロックの位置情報とノードの死活を管理

DataNode障害時は自動的にレプリカを作成

NameNode

ブロックA データB ブロックC ブロックA データB ブロックC ブロックA ブロックC

(9)

Map/Reduce

分散処理のフレームワーク

Jobの自動管理

 プログラマーはTaskが実行される場所を意識しなくてよい

 プログラマーはTaskを実行するノードの障害を意識しなくてよい

Page 9 © NEC Corporation 2010

プログラム(Job)

Job

Task Task Task

Task Task Task

JobTracker=

JobをTaskに分解

TaskTracker= Taskを実行

(10)

Map/Reduceのしくみ

Map

 分析の対象となる<Key,Value>ペアを作成

Shuffle&Sort

 Keyの値でソートし集約

Reduce

 各<Key,Value>ペアに対し、処理を行う (例:Valueの値の合計値を求める)

(11)

To Be Or Not To Be This Is The Question data HDFSに格納 To Be Or Not To Be This Is The Question

Map(wordcountの例)

To,1 Be,1 Or,1 Not,1 To,1 Be,1 This,1 Is,1 The,1 Question,1 データブロック Map処理:<文字,1>というペアを抽出

(12)

Shuffle&Sort(wordcountの例)

Be,1,1 Is,1 Not,1 Or,1 Question,1 The,1 This,1 To,1,1 To,1 Be,1 Or,1 Not,1 To,1 Be,1 This,1 Is,1 The,1 同じKey(ここでは文字)のペアに集約

(13)

Reduce(wordcountの例)

Page 13 © NEC Corporation 2010

Be,1,1 Is,1 Not,1 Or,1 Question,1 The,1 This,1 To,1,1 Be,2 Is,1 Not,1 Or,1 Question,1 The,1 This,1 To,2 Be,2 Is,1 Not,1 Or,1 Question,1 The,1 This,1 To,2 HDFSに格納 Reduce処理:Value(ここでは数値)の 値の合計を求める

(14)

Map/Reduceのしくみ

可能な限り、操作対象のデータブロックが保存されているノードで

Mapperを起動

 通信の削減  “処理”を“データ”の方に持っていく(データローカリティ)

Map/Reduceの結果を、次のMap/Reduceの入力値にすることも可能

(多段Map/Reduce)

(15)

Flume

Flume

 点在するデータソースから、HDFSへ一元的にデータをロード

Sqoop

 SQl to hadOOp  RDBからHDFS(またはHDFSからRDB)へデータロード  いくつかの製品でダイレクトパスロード(高速ロード)をサポート

Page 15 © NEC Corporation 2010

HDFS

Webサーバー群

Collecter

(16)

HBase

Hadoopデータベース

HDFSにappend(追記)機能を追加

列指向のNoSQLデータベース

OS OS HBase HDFS

(17)

Hive/Pig

独自言語でMap/Reduceを実行

 Hive:HiveQL

 Pig:Pig Latin

構造化されたデータに対応しやすい

Page 17 © NEC Corporation 2010

Coffee,Short,280,drink Coffee,Tall,380,drink Coffee,Grande,480,drink Cake,NULL,580,food

data

Hive

SELECT category, count(name) FROM menu GROUP BY categories;

Pig

gl = GROUP products BY menu; cnt = FOREACH gl GENERATE group AS categories,

COUNT(menu) AS total; DUMP cnt;

(18)

その他

Zookeeper

 分散システムの設定情報の集中管理や同期化などを行う

Mahout

 機械学習のライブラリ(レコメンド、クラスタリングなど)

Cassandra

 AP特性のNoSQL

Asakusa FW

 基幹系バッチ処理のためのライブラリ

その他

 Avro  HUE  Oozie・・・など

(19)

Hadoop 0.23

ここまでにリリースされたすべての機能を備えたバージョン(18か月ぶり)

2つの新機能

 HDFS Federation  YARN(Map/Reduce2)

CDH4(現在ベータ版)で採用

Page 19 © NEC Corporation 2010

0.20系

0.23系

0.20

1.0

0.23

(20)

HDFS Federation

DataNodeを共有する

NameNodeの“連合”

従来のHDFS(Single NameNode)の問題点

 スケーラビリティ •HDFS上のファイルやデータブロックの増加が単一のNameNodeを圧迫  (機能的な)独立性の欠落 •テスト環境と本番環境が共存→テスト環境の操作が本番環境に影響を及ぼす  可用性の欠落 •NameNodeに障害が起きるとクラスタ全体が停止

NameNodeが管理するデータを

水平分割

し、

複数のNameNode

がクラ

スタを管理することで、上記問題を解決

(21)

HDFS Federation

Page 21 © NEC Corporation 2010

NameNode

 Namespace:HDFS上のディレクトリ、ファイル、ファイルを構成するデータブロ ックの情報  Block Pool:データブロックとDataNodeの対応情報 NS BP NS BP NS BP

(22)

HDFS Federation

データブロックは単一の

Block Pool

に属する

障害の局所化

 NameNodeの障害は、他のBlock Poolに影響を及ぼさない

独立性の確保

 異なるNameSpace間のでの独立性が確保される  テスト環境用のNameNodeを立てておけば、本番環境用のNameNodeに影響 を及ぼさない

参考文献:

https://issues.apache.org/jira/secure/attachment/12440257/Block+

pool+proposal.pdf

(23)

YARN(MapReduce2)

Yet Another Resource Negotiator

クラスタ上で動く

アプリケーションへのリソース割り当て

のためのフレーム

ワーク

用語

 ResourceManager(ApplicationManager、Schejuler) •(AppMsrを含む)Containerの起動、監視  ApplicationMaster •クラスタ上で動くアプリケーションの監視(JobTrackerに相当)  Container •クラスタ上で動くアプリケーションの本体、またはリソース割り当ての単位 •従来のTaskに相当  NodeManager •ノードの状態(リソースの使用状況など)をRMに通知

(24)

YARN(MapReduce2)

RM AM S AppMsr Client AP C C C NN

(25)

YARN(MapReduce2)

プログラマーが作成するのはClientプログラム、AppMsr、Containerの3

ただし従来のM/RをそのままYARN上で動かすことは可能

M/R以外のプログラム(BSPなど)を動かすことも可能

リソースの柔軟な割り当て

 コンテナのサイズや数をプログラマーが指定できる(※現状ではメモリサイズの み指定可能)

参考文献:

https://issues.apache.org/jira/secure/attachment/12486023/MapRe

duce_NextGen_Architecture.pdf

http://www.cloudera.com/blog/2012/02/mapreduce-2-0-in-hadoop-0-23/

参照

関連したドキュメント

添付資料4 地震による繰り返し荷重を考慮した燃料被覆管疲労評価(閉じ込め機能の維持)に

6 保険料の納付が困難な場合 災害、生計維持者の死亡、失業等のため、一時的に保険

本資料の貿易額は、宮城県に所在する税関官署の管轄区域に蔵置された輸出入貨物の通関額を集計したものです。したがって、宮城県で生産・消費

本資料の貿易額は、宮城県に所在する税関官署の管轄区域に蔵置された輸出入貨物の通関額を集計したものです。したがって、宮城県で生産・消費

本資料の貿易額は、宮城県に所在する税関官署の管轄区域に蔵置された輸出入貨物の通関額を集計したものです。したがって、宮城県で生産・消費

本資料の貿易額は、宮城県に所在する税関官署の管轄区域に蔵置された輸出入貨物の通関額を集計したものです。したがって、宮城県で生産・消費

本資料の貿易額は、宮城県に所在する税関官署の管轄区域に蔵置された輸出入貨物の通関額を集計したものです。したがって、宮城県で生産・消費

本資料の貿易額は、宮城県に所在する税関官署の管轄区域に蔵置された輸出入貨物の通関額を集計したものです。したがって、宮城県で生産・消費