第一回Hadoop会at tenjin 20100625

33
第1回 HadoopTenjin クラウドのコア技術 Hadoooopについて 20100625橋本 司 2010627日日曜日

description

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

Transcript of 第一回Hadoop会at tenjin 20100625

Page 1: 第一回Hadoop会at tenjin 20100625

第1回 Hadoop会 @ Tenjin

クラウドのコア技術

Hadoooopについて

2010年06月25日橋本 司

2010年6月27日日曜日

Page 2: 第一回Hadoop会at tenjin 20100625

分散処理

2010年6月27日日曜日

Page 3: 第一回Hadoop会at tenjin 20100625

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

分散処理

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

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

1時間

5時間

3

2010年6月27日日曜日

Page 4: 第一回Hadoop会at tenjin 20100625

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

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

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

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

4

2010年6月27日日曜日

Page 5: 第一回Hadoop会at tenjin 20100625

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

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

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

Amazon Hadoop Elastic MapReduceとして提供

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

5

2010年6月27日日曜日

Page 6: 第一回Hadoop会at tenjin 20100625

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

MPI=Message Passing Interface

問題点

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

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

6

2010年6月27日日曜日

Page 8: 第一回Hadoop会at tenjin 20100625

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

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

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

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

8

2010年6月27日日曜日

Page 9: 第一回Hadoop会at tenjin 20100625

9

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

MapReduce

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

2010年6月27日日曜日

Page 10: 第一回Hadoop会at tenjin 20100625

10

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

必要な環境分散処理 Apache Hadoop

JDK Java5以降

OS Ubuntu、Fedoraなど

OS

JDK

分散処理

アプリケーション

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

2010年6月27日日曜日

Page 11: 第一回Hadoop会at tenjin 20100625

11

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

Master Slave 1

Slave 2

jobtracker

tasktracker

tasktracker

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

task trackerはtaskを処理

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

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

2010年6月27日日曜日

Page 12: 第一回Hadoop会at tenjin 20100625

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

HDFS

HBase MapReduce

Pig HiveZookeeper Mahout

Avro

Chukwa

12

2010年6月27日日曜日

Page 13: 第一回Hadoop会at tenjin 20100625

Hadoopの用途

2010年6月27日日曜日

Page 14: 第一回Hadoop会at tenjin 20100625

14

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

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

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

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

RelationalDataBase(RDB)の代替システム

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

2010年6月27日日曜日

Page 15: 第一回Hadoop会at tenjin 20100625

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

15

2010年6月27日日曜日

Page 16: 第一回Hadoop会at tenjin 20100625

MapReduceの説明へ

2010年6月27日日曜日

Page 17: 第一回Hadoop会at tenjin 20100625

17

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

MapReduce

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

2010年6月27日日曜日

Page 18: 第一回Hadoop会at tenjin 20100625

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日日曜日

Page 19: 第一回Hadoop会at tenjin 20100625

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

HDFS

XML、CSVなどのファイル

MapReduce

KeyとValueペアMap

KeyとValueペアReduce

TextInputFormat

TextOutputFormat

19

2010年6月27日日曜日

Page 20: 第一回Hadoop会at tenjin 20100625

多段のMapReduce

2010年6月27日日曜日

Page 21: 第一回Hadoop会at tenjin 20100625

多段MapReduce

複数MapReduceを組み合わせ可能

KeyValueMap Reduce

Job1

Input

Output

Map Reduce

Job2

21

2010年6月27日日曜日

Page 22: 第一回Hadoop会at tenjin 20100625

多段の例「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日日曜日

Page 23: 第一回Hadoop会at tenjin 20100625

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

23

2010年6月27日日曜日

Page 24: 第一回Hadoop会at tenjin 20100625

MapReduceの活用

2010年6月27日日曜日

Page 25: 第一回Hadoop会at tenjin 20100625

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

2010年6月27日日曜日

Page 26: 第一回Hadoop会at tenjin 20100625

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

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

26

WikiのWebサイト

圧縮されたXML

Wik-IE

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

Map

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

Reduce

HDFS

HDFS

解析結果CSV

2010年6月27日日曜日

Page 27: 第一回Hadoop会at tenjin 20100625

Hadoopの可能性

2010年6月27日日曜日

Page 28: 第一回Hadoop会at tenjin 20100625

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

28

想定システム構成

Hadoop

分散処理

add 中間層

既存システム

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

OUTPUT

データベース

BI (経営分析等)集計

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

2010年6月27日日曜日

Page 29: 第一回Hadoop会at tenjin 20100625

vision of Hadoop-based Application

29

Hadoop Application

BigTable

store

Hadoop

internet

internalexternal

crawl

data replicateKVS

2010年6月27日日曜日

Page 30: 第一回Hadoop会at tenjin 20100625

Hadoopの実例紹介

2010年6月27日日曜日

Page 31: 第一回Hadoop会at tenjin 20100625

Hadoop実例 実例紹介

31

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

Facebook DWHとして利用、Hive

VISA リスク分析

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

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

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

2010年6月27日日曜日

Page 32: 第一回Hadoop会at tenjin 20100625

32

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

・SQLとの親和性

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

・技術者育成

・運用監視ツール

・開発/デバッグツール

・認証方法の確立

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

Page 33: 第一回Hadoop会at tenjin 20100625

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

33

2010年6月27日日曜日