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

目次 Hadoop とは? IBM InfoSphere BigInsights BigSheets デモ 2

N/A
N/A
Protected

Academic year: 2021

シェア "目次 Hadoop とは? IBM InfoSphere BigInsights BigSheets デモ 2"

Copied!
21
0
0

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

全文

(1)

企業システムにおける

大規模データの活用と

Hadoop の動向

日本アイ・ビー・エム株式会社

Linux/OSS&Cloud サポートセンター

中井 悦司

(2)

© 2010 IBM Corporation 2

目次

Hadoop とは?

IBM InfoSphere BigInsights

BigSheets デモ

(3)

Hadoop とは?

(4)

© 2010 IBM Corporation 4

Hadoop とは?

– HDFS (Hadoop Distributed File System)

• 複数のノードのローカルファイルシステムを

論理的に結合して、1 つの共有ファイルシス

テムを作成します。

– Hadoop MapReduce

• MapReduce と呼ばれる分散コンピューティ

ングモデルに基づくプログラムを

Java で作

成するためのフレームワークを提供します。

Hadoop は、Google が提唱した分散データ処理を行うための

フレームワークを オープンソースとして再実装したものです。

OBCI Web 連載企画で

Hadoop を解説しています!

『企業システムで有効なオープンソース活用法』

http://itpro.nikkeibp.co.jp/article/COLUMN/20100820/351294/

(5)

Google における MapReduce の利用

MapReduce はデータ処理の手続きを定めているだけであり、実際の Map 処理と Reduce 処理の内容は、解く

べき問題に応じて、個々に考えて実装する必要があります。

– Google での例から分かる様に、静的データの解析(データマイニング)に向いています。

(*)

Google では、次のようなデータ処理を MapReduce モデルで実装していると言っています。

– Web サイト内の文字列検索

– URL 毎のアクセスカウント(Web サーバーのアクセスログの解析)

– 特定の URL にリンクを貼っている Web サイトのリストの作成

– Web サイト毎の単語の出現回数のリストの作成

– 特定の単語が含まれる Web ページのリストの作成

– 大規模なソート処理

Google では、次のような規模の MapReduce 処理をよく実施していると言っています。

– 使用ノード数 2,000

– map 処理の分割数 200,000

– reduce 処理の分割数 5,000

(*) "MapReduce: Simplified Data Processing on Large Clusters" Jeffrey Dean, Sanjay Ghemawat (2004)

http://labs.google.com/papers/mapreduce.html

(6)

© 2010 IBM Corporation 6

(7)

(参考)

MapReduce のプログラムの例

package batt; import java.io.*; import org.apache.hadoop.conf.*; import org.apache.hadoop.fs.*; import org.apache.hadoop.io.*; import org.apache.hadoop.mapreduce.*; import org.apache.hadoop.mapreduce.lib.input.*; import org.apache.hadoop.mapreduce.lib.output.*; import org.apache.hadoop.util.*;

public class Batt extends Configured implements Tool {

public static void main( String[] args ) throws Exception { int status = ToolRunner.run( new Pairs(), args ); System.exit( status );

}

@Override

public int run( String[] args ) throws Exception { Job job = new Job( getConf(), "MapReduce Job" ); job.setJarByClass( Pairs.class );

job.setMapperClass( Map.class ); job.setReducerClass( Reduce.class );

FileInputFormat.setInputPaths( job, new Path( args[ 0 ] ) ); FileOutputFormat.setOutputPath( job, new Path( args[ 1 ] ) ); job.setInputFormatClass( TextInputFormat.class );

job.setOutputFormatClass( TextOutputFormat.class ); // Output format of Map

job.setMapOutputKeyClass( Text.class );

job.setMapOutputValueClass( IntWritable.class ); // Output format of Reduce

job.setOutputKeyClass( Text.class );

job.setOutputValueClass( IntWritable.class ); return job.waitForCompletion( true ) ? 0 : -1; }

public static class Map extends

Mapper<LongWritable, Text, TextPair, IntWritable> {

protected void map( LongWritable key, Text value, Context context ) throws IOException, InterruptedException {

String line = value.toString();

String[] cols = line.split( "¥¥s*,¥¥s*" ); int batt = Integer.parseInt( colss[ 13 ] ) if ( batt > 14 ) {

context.write( new Text( cols[ 0 ] ), new IntWritable( batt ) ); }

} }

public static class Reduce extends

Reducer<Text, IntWritable, Text, IntWritable> {

protected void reduce( Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int battMax = 0;

int batt = 0;

for ( IntWritable i : values ) { batt = i.get();

if ( batt > batMax ) { battMax = batt; }

}

context.write( key, new IntWritable( battMax ) ); } } }

CSV データから特定の列の値でフィルターする処理を

MapReduce で記述した例です。

– MapReduce の処理を Java で直接プログラミングするのは、

意外と手間がかかります。

(8)

© 2010 IBM Corporation 8

一般企業での

Hadoop 活用事例

(9)

IBM InfoSphere

BigInsights

IBM InfoSphere

BigInsights

(10)

© 2010 IBM Corporation 10

ネットワーク技術の進化やセンサーデバイスの普及により、

様々なデータが大規模に蓄積されています

資本市場のデータ量は2003年から

2006年にかけて17.5倍も増加

2005年のRFIDタグの利用は13億個。

2010年までには300億個。

2007年に携帯電話の

利用者は33億人

2011年までにインターネット

の利用者は20億人に達する

政府、国防組織,交通管理

世界中の総情報量は

2年ごとに2倍になる

背景

: データ量の爆発やデータの種類の多様化が急速に拡大

(11)

多量の情報が連

続して到着

(形を変えて進化

する情報

)

(構造化された情

報/非構造化の情

報/混在した情報

広範囲に深

耕した分析

利用シーンに

沿った製品と

カストマーに

ついて細かな

粒度で分析

Webの情報

製品情報

会社情報

ニュースフード・タイプデータソース

国勢調査データ

□ □ □ □□

証券等のマーケットデータ

天気などのデータ

□ □ □ □

センサーデータ

□ □ □ □ □

大規模分析プラットフォームとは?

たくさんのデータソースから発生する超大量なデータを効率よく処理する

事を目指したものです

自動収集や発生源を跨ったクロス収集も必要です。

また、昨今では全然別次元の

SNSからのフィードなども分析の対象にな

る事も多くなりました。

コスト

/詐欺/物量分析データソース

取引データ

クレームデータ

位置情報(GPS)

自動車などが使用するデータ

ヘルスケア情報

オンライン・トランザクション

システム

準非

構造

化デー

準構

造化

デー

構造

化デー

自動

/串刺し

の相関分析、

予測分析

(12)

© 2010 IBM Corporation 12

InfoSphere

Information

Server

ETL

ETL

Data Quality

Data Quality

Data Synchronization

Replication Server Classic Event Publisher Classic Federation Change Data Capture Federation

InfoSphere

MDM Server

CDI/PIM

CDI/PIM

Warehouse

Warehouse

Commo n Meta Data Commo n Meta Data

Cubing

Cubing

Mining

Mining

InfoSphere Global

Name Recognition

InfoSphere Entity Resolution

InfoSphere

Warehouse

Dashboards Financial Planning Mash ups Scorecards

InfoSphere

Streams

Big Insights

大規模分析プラットフォームの全体イメージ

Embedded Analytics

• 従来は扱わなかったタイプの大量データ (Web から収集したデータなど)

• 従来は保存しきれなかったタイプの大量データ (時系列の業務データなど)

Jaql

(13)

Jaql (JSON Query Language) とは?

IBM アルマデン研究所が開発した、準構造化データを解析するための再利用可能なスクリ

プト言語です。

分散ファイルシステムからデータを読み出して加工する処理を記述します。

処理は自動的に

Hadoop ジョブとして実行されます。

Java 等で記述したユーザ定義関数をライブラリ化することができます。

R などの統計パッケージや IBM 提供のテキスト処理モジュールとインテグレートできます

source

operator

operator

sink

read

write

Hadoop

File System

Hadoop

File System

SQL

のようなデータ操作

フィルター

プロジェクション

集約

Jaql はオープンソースとして公開されています。 http://code.google.com/p/jaql/

Jaql のセットアップ手順は、こちらを参照ください。http://d.hatena.ne.jp/enakai00/20101115/1289804628

(14)

© 2010 IBM Corporation 14

Jaql のプログラム例 ~ ワードカウント

$ cat wordcount.jql

splitArr = builtin("com.acme.extensions.expr.SplitIterExpr$Descriptor");

read(lines("Karamazov.txt"))

-> expand splitArr( $, "[^¥¥w]+" )

-> filter $ != ""

-> group by $word = $

into { $word, num: count($) }

-> sort by [ $.num desc ]

-> top 3;

quit;

$ jaqlshell -cb wordcount.jql

[

{

"word": "the",

"num": 14222

},

{

"word": "and",

"num": 10159

},

{

"word": "to",

"num": 9462

}

]

split 関数をライブラリから読み込む

HDFS からテキストを読み込んで、

各行を単語に分割して、

空文字は取り除いて、

同じ単語でグループ化して、

単語と出現数のデータを作って、

出現数の降順でソートして、

上位

3 つのデータを出力

実行結果

MapReduce を意識せずに、自然な

思考の流れで、データ処理を記述で

きることが分かります。

※ 大規模データを効率的に解析するには、処

理の順序や組み合わせなどを工夫する必

要はあります。

(15)

(参考) もう少し複雑な

Jaql のプログラム例はこちらを参照ください。

(16)

© 2010 IBM Corporation 16

OSS の統計解析ツール R から JAQL 形式で

MapReduce を呼び出している例です。

(17)

BigSheets

(18)

© 2010 IBM Corporation 18

BigSheets とは

スプレッドシート風のユーザインタフェース

を用いて、大規模データをインタラクティブ

に分析する環境を提供します。

– Jaql に比べると処理の自由度は下がりま

すが、直感的なインターフェースで利用でき

るというメリットがあります。

データのフィルタリング、ソート、ピボット

テーブルなど、従来のスプレッドシートが提

供するデータ処理を

Hadoop の

MapReduce 処理に分解することにより、

大規模データに対応します。

データ収集モジュール、データ分析マクロ

をプラグインすることで、普通のスプレッド

シートより複雑な分析をおこなうこともでき

ます。

Builder

Front End

Evaluation Service

Simulation

MapReduce

Results

(19)

BigSheets の利用例 (1)

Twitter から、特定製品を『買いた

い』という意味のつぶやきを収集し

て、マーケット分析に利用

– Tweet の収集モジュールと自

然言語解析モジュールをプラグ

インとして使用。

http://www.youtube.com/watch?v=Jqq66INlQ0U

(20)

© 2010 IBM Corporation 20

BigSheets の利用例 (2)

英国国会の

Web

サイトの情報を分析

– 1つの丸が1つの

議案(丸が大きい

ほど、多くの議論が

なされている議案)

– 丸の中は、発言し

た議員ごとに色分

け(各議案について

どの議員がよく発

言しているかが分

かる。)

http://www.youtube.com/watch?v=Jqq66INlQ0U

(21)

ありがとう

参照

関連したドキュメント

Viscous profiles for traveling waves of scalar balance laws: The uniformly hyperbolic case ∗..

The hierarchy arising from finite state transducers classifies streams by a notion of degree that codifies their intrinsic, invariant infinite pattern.. With ‘intrinsic,

次に、第 2 部は、スキーマ療法による認知の修正を目指したプログラムとな

If the above mentioned goods, exempted from customs duty and internal tax, are offered for use other than the personal use of yourself or your family, within 2 years after the

[r]

This agreement is expected to promote greater freedom in movement of goods, services, and capital between Japan and Chile, and foster comprehensive economic cooperation,

A carnet is an international, unified Customs document under an international system based on “Customs Conventions on the Temporary Importation of Private Road Vehicles”

 プログラムの内容としては、①各センターからの報 告・組織のあり方 ②被害者支援の原点を考える ③事例 を通して ④最近の法律等 ⑤関係機関との連携