第一回Hadoop会at tenjin 20100625

Post on 18-Nov-2014

4.193 views 4 download

description

第一回Hadoop会 at Tenjinのスライド

Transcript of 第一回Hadoop会at tenjin 20100625

第1回 Hadoop会 @ Tenjin

クラウドのコア技術

Hadoooopについて

2010年06月25日橋本 司

2010年6月27日日曜日

分散処理

2010年6月27日日曜日

分散処理とはどういったものか

分散処理

1台で5時間かかる処理を5台で行えば、1時間で終わる

1台の処理量を 1/5 にする

1時間

5時間

3

2010年6月27日日曜日

分散処理の利点 分散処理を行う事でどういった利点があるか

○ 処理の高速化 → 処理を早く終わらせる事ができる 例) Yahoo!の試験 分散処理 5分34秒 19台

従来の処理 6時間6分35秒 1台○ リスク分散 → 障害リスクを軽減できる

一台停止しても処理続行できる

4

2010年6月27日日曜日

分散処理の代表例 分散処理を採用/提供している企業

Google MapReduce Googleが論文で発表したモデル

Yahoo! Hadoop MapReduceモデルを元にオープンソースとして開発が進められたもの

Amazon Hadoop Elastic MapReduceとして提供

Microsoft Dryad Bing(ビング)で活用Windows Azureに組み込まれると言われている

5

2010年6月27日日曜日

並列/分散といえば点 スパコンではMPI

MPI=Message Passing Interface

問題点

実装の難易度高い耐障害性も自分でチェックポイントを設けて対処

通信パターンの考慮も必要で工数増大

6

2010年6月27日日曜日

OSSの分散プラットホーム Hadoopとは

簡単 比較的簡単に導入できる安価 特殊なハードウェアを必要としない

高いスケーラビリティ 効率的に拡張が可能

大量データを手軽に複数のマシンに分散して処理できるオープンソースのプラットフォーム

8

2010年6月27日日曜日

9

プログラミングモデル Hadoopで使われるプログラミングモデル

MapReduce

・Map … 置換処理・Reduce … まとめ処理開発者はMap関数とReduce関数を記述するだけで実装可能

2010年6月27日日曜日

10

システム構成例 Hadoopのインストール環境

必要な環境分散処理 Apache Hadoop

JDK Java5以降

OS Ubuntu、Fedoraなど

OS

JDK

分散処理

アプリケーション

特殊な環境は必要なく、Linux系のOSにJDKという環境そこにHadoopだけで実行環境が整う

2010年6月27日日曜日

11

サーバー構成 Hadoopのサーバー構成

Master Slave 1

Slave 2

jobtracker

tasktracker

tasktracker

MasterからSlaveへjob trackerがjobを分割したtaskを分配

task trackerはtaskを処理

各ノード間の通信で空のパスワードでのssh通信が必要

jarとデータをセットで渡す

2010年6月27日日曜日

Hadoopファミリー Hadoopの仲間たち

HDFS

HBase MapReduce

Pig HiveZookeeper Mahout

Avro

Chukwa

12

2010年6月27日日曜日

Hadoopの用途

2010年6月27日日曜日

14

利用範囲 Hadoopが活躍するアプリケーション

大規模データ(数G~数Tバイトやそれ以上)を扱う処理サイト巡回や巡回結果の解析大量のデータを解析する経営分析夜間処理などのバッチ処理

データマイニング、クラスタリング、情報検索、文章要約

医療データ、気象データなどの解析WikiPedia、ソーシャルメディアなどの解析

RelationalDataBase(RDB)の代替システム

特定のデータベースベンダーからの脱却KeyValueStoreなどNoSQL

2010年6月27日日曜日

アカデミック視点 アカデミックな視点からみたHadoop利用

15

2010年6月27日日曜日

MapReduceの説明へ

2010年6月27日日曜日

17

MapReduceとは Hadoopで使われるプログラミングモデル

MapReduce

・Map … 置換処理・Reduce … まとめ処理開発者はMap関数とReduce関数を記述するだけで実装可能

2010年6月27日日曜日

18

MapReduce

MapReduceの基本的な動き

[hoge, 1][hoge, 1][hoge, 1][fuga, 1][fuga, 1]

[hoge, [1, 1, 1]][fuga, [1, 1]]

hoge, hoge, hoge, fuga, fuga

Map Reduce

[hoge, 3][fuga, 2]

[hoge, [1, 1, 1]][fuga, [1, 1]]

key value

複数のTaskで処理を分散実行

input

output

Shuffle & Sort協調動作複数のTaskで

処理を分散実行

2010年6月27日日曜日

MapReduceの入出力 HDFS上のファイルとKey Valueデータ

HDFS

XML、CSVなどのファイル

MapReduce

KeyとValueペアMap

KeyとValueペアReduce

TextInputFormat

TextOutputFormat

19

2010年6月27日日曜日

多段のMapReduce

2010年6月27日日曜日

多段MapReduce

複数MapReduceを組み合わせ可能

KeyValueMap Reduce

Job1

Input

Output

Map Reduce

Job2

21

2010年6月27日日曜日

多段の例「Grep」をみる Hadoopサンプル「Grep」の動作

$ hadoop jar hadoop-example.jar grep [入力ファイル] [出力先 ] [正規表現]

引数

Map

Reduce

行の読み込み正規表現での抽出

カウント

Map

Reduce

KeyとValueの入替

文字列生成

入力ファイル

出力ファイル22

grep-serch Job grep-sort Job

2010年6月27日日曜日

「Grep」ソース解説Hadoopサンプル「Grep」の動作

23

2010年6月27日日曜日

MapReduceの活用

2010年6月27日日曜日

Wikipediaの解析を行うプログラムを作成

2010年6月27日日曜日

Wikipediaデータの解析 Wikipedia解析ツール

Wik-IE リンク取得機能、リンク間情報など情報抽出機能を持つツール

26

WikiのWebサイト

圧縮されたXML

Wik-IE

D/L エントリーIDと 文章文字列の抽出

Map

Mapから渡された KeyValueを ファイルへ出力

Reduce

HDFS

HDFS

解析結果CSV

2010年6月27日日曜日

Hadoopの可能性

2010年6月27日日曜日

既存システムとの連動を想定したシステム構成

28

想定システム構成

Hadoop

分散処理

add 中間層

既存システム

既存システムとHadoopを結ぶ機能重要な開発ポイント

OUTPUT

データベース

BI (経営分析等)集計

データ収集データレプリケート

2010年6月27日日曜日

vision of Hadoop-based Application

29

Hadoop Application

BigTable

store

Hadoop

internet

internalexternal

crawl

data replicateKVS

2010年6月27日日曜日

Hadoopの実例紹介

2010年6月27日日曜日

Hadoop実例 実例紹介

31

Yahoo! ログ解析、レコメンデーションなど

Facebook DWHとして利用、Hive

VISA リスク分析

楽天 商品のレコメンデーション

クックパッド マーケティングデータの解析に利用

はやぶさ 科学衛星運用解析

2010年6月27日日曜日

32

今後の課題 Hadoopの今後の課題

・SQLとの親和性

・既存システムとのシームレスな連携

・技術者育成

・運用監視ツール

・開発/デバッグツール

・認証方法の確立

・帯域を占有してしまう2010年6月27日日曜日

Hadoopビール Hadooper垂涎のHadoopビール

33

2010年6月27日日曜日