120
© 2013 IBM Corporation Hadoop meets SQL – Big SQL InfoSphere BigInsights v2.1 IBM Hadoopソフトウェア・テクノロジー

IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

Embed Size (px)

DESCRIPTION

2013/07/26のCLUB DB2での発表資料(配布版)です。 作成・発表は土屋 敦さんですが、代理でUPLOADしています。 CLUB DB2 第167回「IBM版Hadoop "BigInsights"とBig SQL機能」 https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/ClubDB2/page/%E7%AC%AC167%E5%9B%9E

Citation preview

Page 1: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation

Hadoop meets SQL – Big SQLInfoSphere BigInsights v2.1IBM Hadoopソフトウェア・テクノロジー

Page 2: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation2

本日の内容

�お知らせ�Hadoopとは�InfoSphere BigInsightsの概要�Big SQLデモ

Page 3: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation3

お知らせ:クイックスタート・エディションは無償で利⽤可能� 非商用環境において、無期限・サイズ無制限で利⽤可能。

-提供形態:バイナリー版(インストーラー)⇒クラスタ環境構築可能VMイメージ (本日のデモで使います)

ここからダウンロード

ダウンロード:http://www.ibm.com/software/data/infosphere/biginsights/quick-start/index.html

Page 4: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation4

Page 5: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation5

� 超⼤容量のファイルを� ⼀気に全て処理するための� 分散ファイルシステムと� バッチ処理システムの組合せ

� 作り込みが必要だが多様な目的に利⽤可

� オープンソース Apache Software Foundation(http://hadoop.apache.org)

Hadoopとは?

Page 6: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation6

Hadoopの仕組みとコンセプト

•「⼤量データ」を扱う、分散処理フレームワークの仕組み

• HDFS・MapReduce

•Hadoopのコンセプト• スケール・アップではなく、

スケーラビリティ重視のスケールアウト型• 障害が発生することが前提(エラー忘却型)• データに対してプログラムを移動させる(ローカリティ)• レイテンシー(応答時間)ではなく、スループット重視• システムレベル(分散)の隠ぺい

Page 7: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation7

Hadoop処理の概念(ざっくり)

1台のサーバで処理をするよりも、

複数台のサーバで1つの処理を分割して処理する⽅が効率的という考え⽅。

Webサーバログ等RDB

Webサーバログ、準構造化データ等を事前に分割配置(HDFS)・・・・プログラムをデータ側へ。

RDB

20分 5分 5分 5分 5分

Page 8: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation8

� 問題は単純:ハードディスクの高速化が追い付いていない– Seagate社の資料によるHDDの容量と転送速度• 1990年 1.37GB ÷ 4.4MB/s = 311s =5分• 2010年 1000GB ÷ 100MB/s = 10000s =2.7時間

– HDD1台の全データを読み出すのに3時間近くかかる

� 100台のHDDに分散する?– ハードウェア障害への対処が必要•故障率は⼀気に100倍

– 分散されたデータの結合をどう⾏うか?シンプルに言えば、この課題をHadoop-MapReduceとHDFS-で解決する

データの保管と分析上の問題

これってDBMSでは解決できない?できる?Hadoopだけが選択肢?

Page 9: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation9

なぜ、分散させるのか?• 分散させる理由

• ⼤量データ処理では、ディスクIOがボトルネックになる。• 分散させたデータは、保持しているサーバー自身が、それぞれ処理(読み込み、書き出

し)する ⇒「ローカリティ」という重要なコンセプト!

CPUCPU

CPUCPU

CPUCPU

CPUCPU

CPUCPU

CPUCPU

分散サーバ⽅式(シェアード・ナッシング⽅式)

1台のサーバで処理をすると、ディスクIOが原因で全てのCPUを効率的に使えないことがある。

複数台のサーバで処理をすると、ディスクIOが原因になりにくくなり、全てのCPUをより効率的に使える。

CPUCPUCPU

CPUCPUCPU

CPUCPUCPU

CPUCPUCPU

共通ストレージ

CPUを使い切れない

ディスクIOネック

Page 10: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation10

Hadoopにおける分散処理のポイント• 分散させる3つの理由

• ⼀般的なサーバを並べる <経済性>• 台数の増減が可能 <スモール・スタート/拡張性>• 内蔵ディスクをストレージとして、巨⼤なファイルを保存する

<高価なストレージ必要なし>

スケールアップ(CPUを増やす)では、価格・性能限界がある。※OLTP処理にはDBは必ず必要です。DBがいらいないと言っているわけではありません。

⼀般的なサーバ複数台で処理をするのが、Hadoopそもそもの考え⽅。

CPUを2倍にしても処理性能が2倍にな

らない 分散させすぎても付加増⼤にな

るので注意

Page 11: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation11

他のシステムとの比較:RDBMS

得意苦手全件処理

直線的非直線的スケイラビリティ

動的なスキーマ(半・非構造化データ)

静的なスキーマ(構造化データ)構造

書きこみは⼀度で、読み出しは何度も⾏われる何度も読み書きされる更新

バッチオンラインもバッチも可アクセス

テラ〜ペタバイト〜テラバイト+データサイズ

Hadoop(⼀般的な考えの)RDBMSSometimes termed “Schema First” or

“Schema-on-Write”

Sometimes termed “Schema Later” or

“Schema-on-Read”

ここではわかりやすいように主観的な比較をしています。

Page 12: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation12

Hadoopとは何か?� ジョブと呼ばれるアプリケーションを

ペタバイト級のデータを処理可能なコモディティーなハードウェアによる⼤きなクラスター上で実⾏するためのフレームワーク

– コモディティーなハードウェア : Intel x86互換の比較的安価なPCサーバーでというのがもともと。

� HDFSという名の分散ファイルシステムを提供する。複数のノードにデータを分散し、クラスター全体で高スループットを提供する。

� Map/Reduceと呼ばれる演算パラダイムを実装する。アプリケーションはタスク単位に分割され、クラスター上のデータの存在するノード上にて実⾏される

� アプリケーションに高信頼性と透過的なデータ処理を与えるフレームワークでデータローカリティーを保証する

� 個別ノードの障害対応は自動的にフレームワークにより対処される。※ノード障害が発生したら、直さないと止まってしまうシステムではない、ということ。

Page 13: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation13

データローカリティーとは?� ⼀般にプログラムは巨⼤データに比べると無視できるくらい小さい� 現在のコンピュータはCPUに比べサーバー同士を繋ぐネットワークは

とても遅い� 分散システムにおいて、データではなく、プログラムを移動するほう

がネットワーク通信コストが格段に低い� ボトルネックを解消することで処理全体が

速くなる

� 処理対象のデータが物理的に存在するノードにて処理を実⾏する仕組をデータローカリティーと言う

� Hadoopは分散ファイルシステムにて巨⼤ファイルを分割して等しく分布させ、処理対象のデータが存在するノードにプログラムを転送し、処理を実⾏するため高速に分散処理が可能となる、という考え⽅。

Page 14: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation14

� 2002年– Doug CuttingとMike CafarellaがOSSの検索エンジン開発を目的として

WebクローラーNutchの開発開始� 2003年

– Googleが自社検索エンジンで使⽤する分散ファイルシステム、GFS論⽂公開

� 2004年– 二人がGFSの論⽂を元にNDFS(後のHDFS)開発– GoogleがMapReuduce論⽂公開

� 2005年 NutchにMapReduceを実装� 2006年 NutchからHadoopとして独⽴

→ もともとHadoopは、Google基盤システムについて記載された論⽂を元に、実装を⾏い進化してきたもの

Hadoopにまつわる年表

Page 15: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation15

15

•Googleが提唱したテクノロジーを、Yahoo!が実装、Apacheファンデーションに寄付。「⼤量データ」を扱う、分散処理フレームワーク

•Hadoopの構成要素• HDFS (Hadoop Distributed File System)

• 複数ノードのローカルファイルシステムを論理的に結合して、1つの共有ファイルシステムを作成します。

• Hadoop MapReduce• MapReduce と呼ばれる分散コンピューティングモデルに基

づくプログラムを Java で作成するためのフレームワークを提供します。

MapReduceは単純な仕組み。Googleが⼤規模データ処理を実現し、その有⽤性を具現化したYahoo!の貢献は⼤きいといえます。このように分散処理への取り組みのハードルを低くし

たといえます。

Page 16: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation16

16

Hadoopがなぜ開発されたか?•Googleに代表されるインターネット・サービスを提供する企業

は、検索インデックス作成や、Webサーバのアクセスログなどの解析のようなレコード単位の単純な処理を⼤量データに対して処理を⾏う作業が必要です。

•今までは、このような処理は対象データを分割し、複数サーバで、それぞれ処理を⾏い、結果を集計するという分散処理を⾏い処理時間を短くしていました。

•Googleでは、このような処理を自動化できないか?という目的で独自処理フレームワークを開発しました。このフレームワークでは、各レコードに対する処理指⽰を記述するMAP関数と、その結果を集計するREDUCE関数を記述すると、上記の分散処理と集計が自動的に⾏われます。

•Googleが、このフレームワーク概要をMapReduceという呼び⽅をし紹介しました。そして、Yahoo!がこのフレームワークをHadoopとして実装しました。

Page 17: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation17

参考:日経コンピュータからの抜粋

Page 18: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation18

Hadoopの特徴� バッチ処理に威⼒を発揮

– 従来数時間〜数日要していた処理を短時間で処理– 処理を分割して複数のサーバで分散処理を実⾏

� 高いスケーラビリティ– 容易にスケールアウトが可能– サーバ増設で格納容量,処理性能を向上– 数台〜4000台程度までのHadoop環境を構築可能

� 特定のサーバが故障してもサービス継続– データは分割・分散配置– 処理に異常が発生する場合は、他サーバで再実⾏

� コモディティな製品で構成可能– 10〜50万円/ノード(ディスク容量当たりのCPU&メモリを安価に)– 特定ベンダの特別な製品は不要

� 敷居が高かった分散並列処理を⼀般業務に安全に利⽤できるようになった(並列化に考慮するが分散の意識不要)

出典:O’Reily,Hadoop第2版,OSC2012 DB(2012年7月)日本Hadoopユーザー会講演より(⼀部補筆)

Page 19: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation19

参考:Hadoopに対してよくある誤解(不得意)�誤解1: (RDBMSのような)高速なデータアクセス

– ミリ秒単位の処理をHadoopに求めてはいけない※ただし、このリアルタイム化が進んでいます。※HBaseも(少量ならHiveも)それなりのレスポンスタイムが実現できるケースがあります。

�誤解2: ⼤量の小さなファイル–Hadoopは小さなファイルを扱うのが苦手である

�誤解3: 複数のライターからの書き込みや,任意のファイル修正

–書き込みは常にファイルの末尾に⾏われる–複数ライターのサポートはない

◎⼤量データに特化したバッチシステム–オンライン処理は不向き(スループット優先)–データは⼤きな塊として扱うことが望ましい

出典:O’Reily,Hadoop第2版,OSC2012 DB(2012年7月)日本Hadoopユーザー会講演より(⼀部補筆)

Page 20: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation20

Hadoop/MapReduce が向いている」もの

•日々膨張する蓄積データ• 毎日数百GBずつ生成されるログのようなデータへの対応ができる• HDFSならサーバを買い足して増強できる

• IO ボトルネックで⻑時間かかるジョブがある• シェアードナッシングによる分散処理での解決可能性

•⼤量データを同時処理し、ソートやマージ処理がくり返される• MapReduceはそのためのフレームワーク

※個別処理なら、別の選択肢もありえることを忘れない!

•準構造化・非構造化データ•今はMapReduceに向いていないが、将来、蓄積された処理結果を

統計分析などする可能性がある• 最初から、蓄積先をHDFSに入れ、MapReduceで分析するとよいのでは?

データが分割、処理が分割できることが前

アーカイブとして利⽤するのは、コスト的に?の場合

がある。

Page 21: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation21

Hadoop/MapReduce が向いていない」もの•少ないデータ量

• Hadoopは,TB/PBクラスのデータ量を処理することが前提。• 基本的に100GB以上はほしい

• でも、数十GBなら、Hadoop分散処理効果は得られるはず →トライ&エラー• ノウハウが必要(結局、うまくいかない場合もある)

•IO ボトルネックになっていない処理• 分散させても、IOネックは関係はない。

• 処理の計算コストは分散低減(CPU負荷分散)はできる可能性はある。

• ×××× 処理の途中で更新がある。• ×××× DBと同じトランザクション処理。• ミッション・クリティカル・システムへの適応?(時期尚早?)

→ファイルシステム改善?Hadoopアプライアンス? IBMはこれらの課題をアドレスします。

• ××××応答時間を求められている処理(OLTP処理)。• ××××分割をしたら、結果が変わる処理(MapReduceの特性の理解)。• ××××シーケンシャル番号を割り当てる処理(DBのSeqに相当)。• ××××処理順序が厳密に求められる処理。

• 計算ノードからの応答は順不同

データが少ないと、分割負荷が相対的に大きくなる

データが分割処理ができることが前提

途中での更新はできない。(Hbaseの活用はできる)

Page 22: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation22

Hadoop基盤の特徴の理解が必要� Hadoopは、SWとHWの両面において「汎用化」を⾏うことで、相対的

に安価な基盤で、ユーザーの開発生産性を高めつつ、⼤容量データ処理を実現しています。

データノード データノード データノード

MapReduce

B1 B2

HDFS

MapReduce

B3 B4

HDFS

Map

Shuffle

MapReduce

B5 B6

HDFS

TT TT TT

ネームノードJTHDFS

メタデータ

Core Core Core Core

HDD HDDmem

Core Core Core Core

HDD HDDmem

Core Core Core Core

HDD HDDmem

APL(バッチ)

投入

Map

Shuffle

Reduce

Map

Shuffle

Reduce

ソフトウェア

ハードウェア� 「コモディティ」なHWでの利⽤を前提とした設計

�IAサーバー、内蔵SATAディスク、1GbEネットワークなど…

� 「スケールアウト」による性能拡張�各ノードの性能を高めるより、同じスペックの「安価な」ノードを追加することで性能向上

� 並列分散処理として汎⽤化できる部分をフレームワークとして吸収(全てではない)

�MapReduce、Hive… (IBMはJaql言語)� 可⽤性、性能向上はソフトウェアの仕組みとして対応

�HDFSのファイル分散、冗⻑化のよるデータ保護�障害時は、ノードごと交換する運⽤⽅針

Page 23: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation23

� 並列処理フレームワークである” MapReduce”と、⼤量データを格納するための専⽤分散ファイルシステム である“HDFS” から構成されます。

計算ノード 計算ノード計算ノード

Hadoop のアーキテクチャー概要

・・・

Hadoop Distributed Filesystem (HDFS) 計算ノード群(仮想的に1つのストレージに⾒える)

MapReduceエンジンそれぞれノードから同じデータ

が参照可能。(実際のデータは、各サーバーのローカルディスクに分散配置)

MapReduceエンジン

MapReduceエンジン

管理ノードJobTracker

MapReduce タスクをディスパッチ(計算ノードの停止時には、タスクを再ディスパッチ)

Jobの実⾏を管理およびTaskのディスバッチを⾏う

内臓ディスク 内臓ディスク 内臓ディスク

Page 24: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation24

HDFSは仮想(アプリで実装された)分散ファイルシステム

user

dir1 dir2 dir3

どのマシンからも同じファイルが⾒られるが、専⽤コマンドが必要

ファイルやディレクトリーは専⽤のコマンドにて作成

Page 25: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation25

HDFS: アーキテクチャーいわゆる中央管理システム

Page 26: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation26

ネームノードとデータノード

� マスター/スレーブ方式– ネームノード (マスター)• HDFSの名前空間を管理• ファイルシステム内のツリーと、ツリー内の全ファイル及びディレクト

リーのメタデータをメモリー上にて管理• SPOFのためHA等を⽤いた冗⻑化が必要

– データノード (スレーブ)• ブロックの読み書き• ネームノードに定期的に保管しているブロックリストを報告• データノードが故障しても全体に影響がない

Page 27: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation27

参考:HDFSとは〜Hadoop専⽤ファイル・システム〜

� HDFS:(Hadoop Distributed File System)– 複数台のマシンをN/W連結し、⼤きなストレージを形成している。⼤きなファイルを複数のスト

レージにまたがり格納することができる。� Name ノード(←これがSPOFがあると言われる所以。対応必要。NameノードとHDFSをHA化する取り組みも進んでいます)

– データノードに分散された実データのある場所を記憶する。� Secondary Nameノード

– メタデータの変更の際に記述された変更内容のジャーナルを元に、ファイルに保存されたメタデータ情報を定期的に最新の状態に更新する。

– メタデータ情報を保存するファイルとエディットログファイルは、冗⻑性のために、各ノードのローカルファイルシステムとNFS マウントしたリモートディスクの2 箇所に保存する。

� Data ノード– HDFS独自のブロック転送プロトコルによりデータブロックを転送する。またHTTPによりデータ

を提供すること ができ、WEBブラウザ等のクライアントからのアクセスを処理できる。データノード間はお互いに通信し、データ再配置、データコピー、冗⻑性維持を⾏うことができる。データはファイル単位ではなくブロック単位で各ノードに分散される。

・・

・・・

HDFSへデータを分散保存

Data Node+Task Tracker Node

データ Map

Data Node+Task Tracker Node

Mapデータ

Data Node+Task Tracker Node

Shuffle

Data Node+Task Tracker Node

Reduce

Reduce

Data Node+Task Tracker Node

Reduce

結果A

結果B

結果C

結果Shuffle

Nameノード

Shuffle

Job Tracker

Secondary Nameノード

実際のデータを保存

ファイルシステムのメタデータを管理

Page 28: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation28

HDFSにおけるファイルの書込

コピー作成に失敗しても規定数以上のブロックが作成できれば書込は成功し、HDFSが引き継いだ後に、コピーを後から増やす

コピーを保存するノードもネームノードが決定する

Page 29: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation29

29

Hadoopでは、障害は発生することが前提〜HDFSと自動レプリカの仕組み〜

データノード群

A1 A2 A3

B1 B2 B3

ファイルA

ファイルB

A1 A1 A2

A2 A2 A3 A3

A3B1 B2 B2

B3 B3

三つのレプリカ

二つのレプリカ

ネームノード

このマシンがダウンしたら・・・

別の正常なマシンからレプリカが再実⾏される

A1B1

A1

B1

Page 30: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation30

� HDFSは、OS上に構築する仮想ファイルシステム。つまり、アプリケーションと同じレイヤー

� Hadoopで処理をしたいデータは、HDFSへコピーする必要がある。– HDFSがPOSIX準拠ではないため。

Linux OS / Linux File System

HDFS

ハードウェア・レベル

HadoopAPL

APL

APL

わかりやすく、HDFSの概念図〜Hadoop専⽤ファイル・システム〜

Page 31: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation31

よくあるケース)バッチ処理にかかる総コスト〜DBからデータをHadoopに移動させるケース〜

� Hadoop処理にかかるコスト = { A(DBからのデータ移動)+B(HDFSへのコピー)+C{分散コスト+処理コスト+集約コスト}+D(結果書き戻しコスト)+E(DBへのデータ移動) }→これが、現状処理よりも時間短縮になれば、Hadoop処理の効果あり。

Linux OS / Linux File System

HDFS(非POSIX準拠)

ハードウェア・レベル

分散Hadoop処理APL APL

BAD

E

C

エキスポート インポート

Page 32: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation32

HDFSに向かない処理

� ×低レイテンシのデータアクセス– スループットに最適化

� ×⼤量の小さなファイル– 最⼤ファイル数はマスターノードのメモリ容量に制限される

※計算すればよい。※⼤量の小さなファイルを1つのファイルとして扱う手段が⽤意されている。

� ×複数の同時書込や任意ファイルの修正– 書込は常に新規か追記のみ– 任意位置からの書込不可(将来は不明)• 通常のファイルシステムはseekできますが、HDFSは現在できません• POSIXで規定されたファイルアクセスのAPIに足りないものがあります• Linux上でマウントできません

Page 33: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation33

参考:コマンドラインインターフェース

� HDFSはコマンドで操作可能– 例:hadoop fs –ls / ルートディレクトリーのリストを表⽰– hadoop namenode –format ファイルシステムをフォーマット– hadoop fs –mkdir /user/hadoop ディレクトリーの作成– hadoop fs –copyFromLocal huge.log /user/hadoop コピー

� ファイルシステムの指定にURIスキームを利⽤可能– file://localfile/– hdfs://hadoopdfs/– ftp://pub/rhce/rpm/

� POSIX相当のファイル操作APIがJavaライブラリーにある– ただし、⼀部のAPIが欠けている

Page 34: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation34

参考:Webインターフェース : ポートはデフォルトでは50030 と 50070

Page 35: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation35

HDFS まとめ

� HDFS : Hadoop Distributed File System� Javaで書かれた分散ファイルシステム� マスタースレーブ形式でネームノードとデータノードに分かれる

� スループットに最適化 (レイテンシは良くない)

� ネームノードはファイルシステム全体のメタデータを管理する� 全てのデータはデフォルトで3コピー取られる(データはもともとの4倍量)� 冗⻑性に優れデータノードの⼀部に障害が発生しても全体に影響が出ない� ただしネームノードはSPOFとなるので冗⻑化を必要する(仕組みがある)

Page 36: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation36

MapReduceとは何か

� Map処理とReduce処理–関数型言語の分散処理への応⽤で、アプリケーションフレームワーク

–演算パラダイム、つまり枠組み•工夫であり、制約でもある※ここがYARNでMapReduceの枠を超えられる

–ざっくりと言うと、以下の二つの関数で処理される•map (in_key, in_value) -> (inter_key, inter_value) list•reduce (inter_key, inter_value, list) -> (out_key,

out_value) list

36

Page 37: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation

例)MapとReduceの処理フローの概念①mapでデータを操作し、②reduceでデータを集約する※mapもreduceもデータの全体を知る必要がない

この例:入⼒ファイルからdogという単語とcowという単語の出現回数数をMapReduceで数える例(よく言う、ワードカウント)

Unixだと

Page 38: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation38

クラスター上でのMapReduceによる並⾏処理

mapとReduceの間にShuffleフェーズが存在し、全データはソートされる

HDFSにある巨⼤な

ファイル群

mapもreduceもプログラムが配信される

Page 39: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation39

参考:Tips� HDFSは巨⼤なファイルをクラスター上に分散する� MapReduceはMap処理をデータの存在するノードに分散

– 巨⼤なデータの転送無しにデータ全体の処理が⾏われる– データが複数のノード上で多重I/Oが⾏なわれるので速い– 全体のパフォーマンス向上のためにはさらにMapの出⼒をできる限り減らす

ことが重要• MapからReduceへのデータ移動はネットワーク上の転送になるShuffleは

ソートを⾏う– 同じキーのデータは同じReducerに集まる→集約が⾏える

� Reduceも分散できるが、デフォルトでは分散しない– 例えば全てのデータの合計値が欲しい場合にはreducerを1つにするしかない– Reducerを複数に指定すると出⼒ファイルも複数になる

• 例えば先の⽝と⽜のそれぞれの合計を数える場合、Reducerは2つにして良い

– 処理の特性に合わせてReducerの数を調節することが重要• デフォルトの1つでは⼤抵の場合遅いので注意

Page 40: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation40

参考Tips:入⼒スプリット(後述)

� Mapへの入⼒はsplitと呼ばれる単位に切り分けられる� map関数はsplit中のレコードを繰返し処理する

� splitが小さければタスクの数が増え平⾏度が増す� 全体のロードバランスが良くなる

� splitを小さくし過ぎるとタスク生成のオーバーヘッドが⼤きくなる

� 通常、splitのサイズはブロックと同じ(例:128MB)にしておく

Page 41: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation41

HadoopにおけるMapReduceの実装� 通常はJavaで記述

– 他の言語でも可能(Pig, Hive(HiveQL),JAQL,SQL, Hadoop Streaming)� JavaでHadoopのライブラリーを⽤いてプログラムを作成

– main関数を持つアプリケーション– jarで固める• manifestでmainクラスを指定

� hadoopコマンドにて実⾏– MRアプリは⼤量のjarファイルに依存するので簡便のためhadoopスクリ

プトを使う• hadoop –jar user_program.jar [mainクラス名] 入⼒パス 出⼒パス

– 入⼒パスはファイルかディレクトリー名。• ディレクトリー指定では中のファイル全てを処理します

– 出⼒パスは存在しないディレクトリー名。存在する場合エラー• reduceの出⼒は出⼒パスにreduceの数のファイルとして記録される

Page 42: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation42

MapReduceの基本�MapReduce の基本:

Divide & Conquer–大きな問題を小さくして解決する

42

Map

Reduce

Map

Map

TaskTracker

TaskTracker

TaskTracker

TaskTracker

TaskTracker

JobTrackermainrun

Reduce

ジョブの実⾏依頼

タスクの実⾏分配

タスク/Job配布

データ移動

Spawn JVM

Spawn JVM

Spawn JVM

データがある場所でプログ

ラム実⾏

Spawn JVM

Spawn JVM

⇒プログラム

プログラム

Page 43: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation43

MapReduce とは (1)� 広義にとらえるとMapReduceは、並列処理のための分散計算手法です。

– 考え⽅は非常に単純で、次の 2つのステップでデータを処理するというだけのものです。• ステップ#1:処理対象のデータをレコード毎に処理して、それぞれの結果をキー

とバリューの組で表現する。⇒ これがMap 処理• ステップ#2:同⼀のキーを持つ結果毎に処理結果を総合して、最終結果を取り出

す。⇒ これがReduce 処理–例えば、1000ページのドキュメントに含まれる IBM と Linux いう単語の出現回数を検索。

• 1 レコードは、1 ページ分のテキストで、処理結果のキーとバリューは、単語(IBM、もしくは、Linux)とその出現回数とすると下記の MapReduce 処理で結果を得ることができます。

ページ毎に処理を⾏う(Map)

ページ 1 (IBM, 3 回)(Linux, 1 回) 単語毎に結果を合計する

(Reduce)

合計(IBM, 102 回)(Linux, 293 回)・

・・

ページ 2 (IBM, 0 回)(Linux, 2 回)

ページ 1000 (IBM, 0 回)(Linux, 0 回)

Page 44: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation44

� MapReduce はデータ処理の⼿続きを定めているだけであり、実際のMap 処理と Reduce 処理の内容は、解くべき問題に応じて、個々に考えて実装する必要があります。

� Google では、次のようなデータ処理を MapReduce モデルで実装していると言っています。– Web サイト内の⽂字列検索– URL 毎のアクセスカウント(Web サーバーのアクセスログの解析)– 特定の URL にリンクを貼っている Web サイトのリストの作成– Web サイト毎の単語の出現回数のリストの作成– 特定の単語が含まれる Web ページのリストの作成– ⼤規模なソート処理

� Google では、平均的に次のような規模の MapReduce 処理を実装していると言っています。– 使⽤ノード数 2,000– map 処理の分割数 200,000– reduce 処理の分割数 5,000

MapReduce とは (2)

Page 45: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation45

45

<Key, Value> <Key, Value><Key, Value>

<Key, Value> <Key, Value><Key, Value>

Map Map Map

Reduce<Key, Value>

<Key, Value>

OutpurFormat

Split Split Split

input input input

InputFormat

シャッフル(ソート){内部処理}Driver

出⼒ファイル(HDFS)

<Key, Value> <Key, Value><Key, Value>ジョブ投入

処理の分散実⾏を制御

処理結果の集約を制御

分散を意識する必要はありません。

KeyとValueの

構造

Hadoopクラスタ

入⼒ファイル(HDFS)

MapReduceの内部構造

Reduceプログラム実装

プログラム実装

並列度が決まる(インプットをどのサイズで分割す

るのか?)

Page 46: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation46

MapReduceの例(1):ワード・カウント編〜Map処理(アプリケーションとしてプログラム実装が必要)〜

46

IBM enables new solutions to gain insights from unprecedented information flows, which are exploding in volume, variety, velocity and vitality. These flows are so large they define a new category: big data. They offer tremendous potential for deep insights that provide greater efficiencies, value add services and opportunity for transformation.No other company offers the depth and breath of innovation and experience like IBM does in the big data space. From ultra-low latency information-in-motion analytics capabilities offered via InfoSphere Streams, analytics oriented data warehouse solutions, to our innovative InfoSphere BigInsights, IBM has an unique breadth of big data capabilities with a holistic approach. InfoSphere BigInsights is an analytics platform that delivers unique IBM Research, IBM Emerging Technologies and IBM Software capabilities on top of Apache Hadoopframework enabling new solutions on a business-ready platform. IBM has a holistic approach, expanding analytics to encompass big data, information streams, and structured data in Data Warehouses.

IBM 1enables 1new 1solutions 1to 1gain 1insights 1from 1unprecedented 1information 1flows 1which 1

Map出⼒の結果

テキストを単語に分解して、出現頻度を数

えます。

Page 47: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation47

47

IBM 1IBM 1IBM 1IBM 1:

IBM 1enables 1enables 1enablesnew 1new 1new 1new 1

IBM 1,1,1,1,….1enables 1,1,1,1new 1,1,1solutions 1,1,1to 1,1,1,1,….,

1gain 1,1insights 1,1,1,…..1from 1,1,1,1…..1unprecedented 1information 1,1,1,1flows 1,1,1which 1,1,1,1…..1

MapReduceの例(1):ワード・カウント編〜ソート・シャッフル(内部処理)〜

次に、単語毎に整理して、出現頻度を数

えます。

Page 48: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation48

48

IBM 1,1,1,1,….1enables 1,1,1,1new 1,1,1solutions 1,1,1to 1,1,1,1,….,

1gain 1,1insights 1,1,1,…..1from 1,1,1,1…..1unprecedented 1information 1,1,1,1flows 1,1,1which 1,1,1,1…..1

IBM 201enables 4new 3solutions 3to 3021gain 2insights 583from 1028unprecedented 1information 4flows 3which 128

MapReduceの例(1):ワード・カウント編〜Reduce(アプリケーションとしてプログラム実装が必要)〜

出現回数を単語毎に纏めて数えます。

最後に集計結果をまとめます。

Page 49: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation49

MapReduceの仕組み/キー別スコアの合計を求める

<A,10>

<B,20>

<C,30>

<A,40>

<A,{10,40,20}>

<C,{30,20}>

<B,50>

<D,40>

Map

Map

Map

HDFS

HDFS

HDFS

Reduce

Reduce

シャッフルシャッフルシャッフルシャッフル(Shuffle)同じキーで再配置同じキーで再配置同じキーで再配置同じキーで再配置&集計集計集計集計

この例は,この例は,この例は,この例は,SELECT KEY,SUM(VAL) FROM T GROUP BY KEY

に相当する。に相当する。に相当する。に相当する。RDBMSならばどのように並列処理されるかならばどのように並列処理されるかならばどのように並列処理されるかならばどのように並列処理されるか

<D,10>

<A,20>

<D,20>

<B,20>

<B,10>

<C,20>

<D,10>

<B,{20,20,10}>

<D,{10,20,10}>

<A,70>

<C,50>

集計集計集計集計

集計集計集計集計

集計集計集計集計

集計集計集計集計

スコア一覧ファイルスコア一覧ファイルスコア一覧ファイルスコア一覧ファイル

A,Q1,10,Q2,50,Q3,20B,Q1,20,Q2,10,Q3,40

・・・・・・・・・・・・・・・・・・・・

スコア一覧ファイルスコア一覧ファイルスコア一覧ファイルスコア一覧ファイル

A,Q1,10,Q2,50,Q3,20B,Q1,20,Q2,10,Q3,40

・・・・・・・・・・・・・・・・

())))

ファイルはファイルはファイルはファイルはHDFSににににブロックサイズブロックサイズブロックサイズブロックサイズ単位単位単位単位

にににに分割されて各ノー分割されて各ノー分割されて各ノー分割されて各ノー

ドに配置されるドに配置されるドに配置されるドに配置される

<A[Key],70[VAL]>

Page 50: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation50

RDBMS(DPF)/区分キーの設計に依存する

選択

選択

選択

区分

区分

区分

30C40A

2010VAL

BAKEY

40D50C50B70ASUMKEY

20C10B

10

20VAL

D

BKEY

202010VAL

DADKEY

集計集

シャッフルがないのシャッフルがないのシャッフルがないのシャッフルがないの

で,誰か(コーディで,誰か(コーディで,誰か(コーディで,誰か(コーディ

ネータノード)が最ネータノード)が最ネータノード)が最ネータノード)が最

後に集計を行わな後に集計を行わな後に集計を行わな後に集計を行わな

ければならないければならないければならないければならない

SELECT KEY,SUM(VAL)

FROM T GROUP BY KEY

30C2050SUM

BAKEY

2030SUM

ADKEY

20C10

30SUM

D

BKEY

スコア一覧スコア一覧スコア一覧スコア一覧

あらかじめ区分あらかじめ区分あらかじめ区分あらかじめ区分

キーで分割キーで分割キーで分割キーで分割

偏ったまま偏ったまま偏ったまま偏ったまま

Page 51: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation51

MapReduce/分布に偏り少なく並列処理に有利

<A,10><B,20><C,30><A,40>

<A,{10,40,20}><C,{30,20}>

<B,50><D,40>

Map

Map

Map

HDFS

HDFS

HDFS

Reduce

Reduce

シャッフル(Shuffle)同じキーで再配置&集計

SELECT KEY,SUM(VAL) FROM T GROUP BY KEY

<D,10><A,20><D,20>

<B,20><B,10><C,20><D,10>

<B,{20,20,10}><D,{10,20,10}>

<A,70><C,50>

集計

集計

集計

集計

出現回数に偏りがあっても・・・

リストの⻑さは偏ってもReduce後には均等に

Page 52: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation52

ここまでのまとめ

� Hadoopは超巨⼤なファイルを効率よく処理するバッチフレームワーク、と位置づけられます。※常に進化していることも事実。YARNなど。

� HadoopはHDDの遅さに考慮して、データローカリティーを重視した考え⽅に基づきます。

� HadoopはHDFSという分散ファイルシステムを持ちます。� HadoopはMapReduceというパラダイム(プログラム実⾏フレーム

ワーク)を⽤いてアプリケーションを作成します。

Page 53: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation53

Hadoop common� HDFSとMapReduceのことをHadoop commonと呼びます

– 注:厳密にはcommonにはHDFSもMapReduceも含まれないコアのユーティリティーのみを意味するはずですが、実際にはcommonとHDFS、MapReduceは同梱して配布されているためここではcommonに含まれるとします。

� Hadoop commonは巨⼤ファイルをバッチ処理することに特化したシステムです。– 巨⼤なファイルを扱うためのファイルシステムであるHDFS– HDFS上にて分散されたデータの存在するノードに、アプリを配布して処理する

MapReduce

� Hadoop commonは基本的にこの目的にしか使えません!

� Hadoopの限界を考えずにHadoopを使うと失敗します。– よくある失敗例

• Hadoopをオンライン処理に⽤いるレイテンシが高く、ジョブ配布コストがあるので1ジョブの終了には短かくても数十秒~30秒近くかかります。

• Hadoopを通常のネットワークファイルシステムとして常⽤する小さなファイルには向きません。更新できません。ファイル復旧、バックアップ手段等まだ足りません。

• Hadoopを仮想環境で利⽤するデータローカリティーを実現できず、スケールしません。(特別な対処、仕組みを用いていない限り。。。)

Page 54: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation54

Hadoop commonの限界

� HDFSはOSにマウントできない– HDFSとローカルファイルシステムの間でデータのコピーが必要となる

� HDFSは巨⼤なデータにしか効率が良くない– 小さなデータを扱うのは苦手

� HDFSは更新できない� MapReduceを⽤いれば必ず巨⼤なファイル全体をアクセスしなければならない

– シーケンシャルファイル、Mapファイル等の⼀部例外は存在する� MapReduceはプログラム開発の難易度が高い

– 関数型言語の高階関数による技法が必要– セカンダリーソート等MapReduce向けのパターンの習熟(職人芸の領域!)

� MapReduceはオンライン処理には向かない– Hadoop税(MapReduceの⼀蓮の処理にかかるコスト)が高い

Page 55: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation55

Hadoop commonに足りないもの

� HDFSと外部との効率的なデータ交換手段– HDFSはOSにマウントできないため、また追記しかできず更新ができないため、HDFS外部との巨

⼤データの効率的な交換⽅法が必要になります– 例: RDBMSのデータとHDFSとの間のデータの交換

⇒sqoopや連携ツールが用意されはじめました。

� MapReduceジョブの管理ソフトウェア– Hadoop上での処理は1度のMapReduceでは完了しない場合がほとんどです– 複数のMapReduceジョブを依存関係を考えながら連続して実⾏する管理ソフトウェアが別にあるほ

うが運⽤が楽になります。⇒AsakusaやPlatform Symphonyはこのあたりを効率化してます。

� HDFSに直接ログを取る手段– HDFSはOSにマウントできないので通常のアプリはHDFSに直接書き込むことができません– しかし⼤量のログをまとめてHDFSにコピーするのは時間がかかります– 何らかの⽅法でアプリをログをHDFSに連続して書き込む手段があると効率が良くなります

⇒IBMのGPFS-FPOや、HDFSの代替ファイルシステムも登場しています。

などなど

Page 56: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation56

非構造化データ� 構造化されていないデータ� 自由フォーマットのテキスト等� テキストに繰り返し等の⼀定の構造があっても非構造化データと判断される場合

も多い → 例: Apacheのログとか

半構造化データ� 厳密な定義はないが、XMLやJSON等のある構造の中に非構造化データ� RDBに対し、半構造化データのデータストアはスキーマレスなDBと表現される

データ構造から考える向き不向き

Hadoop commonは原則ファイルシステムを⽤いるので非構造化データを扱うのに向く。構造化データを扱うにも⼀旦テキストファイルに落とす必要が出てくる。例: RDBMSのテーブルをCSVとしてエクスポートしHDFSにコピー

構造化データ� スキーマを⽤いてデータの要素の型が厳密に定義され、個々のデータが厳密に

等しい型に基づく

Page 57: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation57

色々ありますが、Hadoopを活⽤する時に� Hadoop common、すなわちHDFSとMapReduceは

低レイヤーのプラットフォームと考える– 利⽤⽅法の自由度が高いので開発コストは高いが、当然、失敗もしやすい※運⽤上、commonの知識の重要性は従来と変わらない

� Hadoop単体でなく、上位レイヤーのソフトウェアの利⽤を最初に考慮する– 上位に相応しい物が無い場合に初めてcommon上で自主開発を⾏う

⇒これはかなりハードルが高い。BigInsightsはBig SQLやツールキットを用意しています。

� Hadoopは既にエコシステムの中心である– Apache Foundationには

Hadoopを利⽤するトッププロジェクトが数多くある

Common

Apache Hadoopエコシステム→

Page 58: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation58

参考:Hadoop commonの限界を越える

Oozie、IBM Oozie拡張ジョブ管理システムがない

HBaseオンライン処理には向かない

Hive、Pig、Jaql, SQLプログラム開発が難しい

対処問題

HBase、Hive全てのデータにアクセスする必要があるMapReduce

GPFS-SNC、Gfarm、Ceph等OSにマウントできないHDFS

Mahoutなど高度なライブラリーが不足

Hive, Pig, Jaql, HBaseデータがファイル形式のみ

HBase更新できない

HBase少量のデータに向かない

Page 59: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation59

HDFSはOSにマウントできないIBM : GPFS-FPO� IBM製の分散ファイルシステム� POSIX準拠、OSマウント可能、SPOFがない� HDFSをGPFS-SNCに取り替えることでHDFS使⽤に対し2倍の高速化を達成

– MapReduce Benchmarks on a 16-node cluster with 4 SATA disks per node comparing GPFS-SNC to HDFS

– http://www-03.ibm.com/press/us/en/pressrelease/33036.wss

� SuperComputing Challenge 2010で優勝

OSSの分散ファイルシステムの利⽤� Ceph、Gfram、GlusterFS等多数

� Linux上にて通常のファイルシステムとしてマウント可能� HDFSの代替に⽤いるプロジェクトが複数動いています

– ただし、データローカリティまで対応しているものはまだ少い

Page 60: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation60

半構造化データを⽤いるために

Jaql(ジャックル)処理対象:構造・半構造データ

� IBMが開発� スクリプト言語でMapReduceより生産性が高い� 通常の開発言語と同じ記述⼒-手続き型の記述に適している� Jaql実⾏はMapReduceに変換されてHadoopクラスター上で実⾏される� ⼊出⼒にJSONが使える

– HDFS、GPFS-SNC上にJSONがシリアライズしたバイナリとして保存されるため効率が良い

Page 61: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation61

構造化データを利⽤するために

Apache Hive http://hive.apache.org

スキーマ定義が必要(CREATE TABLE)

� Hadoop上にデータベース(制約有り)を構築する� スキーマを⽤いることが可能

� SQLライクな(SELECTなど)HiveQLクリプトを⽤いてデータにアクセスできる– MapReduceに変換されて実⾏される

� 更新はできない

� 通常の⾏指向のみでなく、列指向のテーブルを作成可能– ⾏指向アーキテクチャーはインタラクティブなトランザクションの多い OLTP 的な⽤途に向く– 列指向アーキテクチャーは少数の複雑なクエリを実⾏するデータウェアハウスのような OLAP 的な

⽤途に向く

� パーティション分割が可能で、データ全体にアクセスする必要が無い� 注: RDBMSの代替には成りません。

Page 62: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation62

列指向データベース : HBase

HBase– http://hbase.apahce.org

� GoogleのBigTableの論⽂を元にHadoop上に実装した列指向データベース– KVSやNoSQLの代表例として挙げられる場合が多い– 列を⾏別に自由に追加できる。柔軟な設計と巨⼤な⾏データの作成が可能

� Hadoop上にて小さなデータの挿⼊や更新を可能に– HDFS上に世代別ファイルを作成することで⾒掛け上の更新を実現し

ている– "Strong Consistency": データの値がreadに対し一貫性を持つ

� ランダムライト、シーケンシャルリードが高速– シーケンシャルライトが苦⼿。書込時にキーがランダムに分散していることが望ましい

• BigTableと同じ⽅法により将来的には解決の⾒込

� データを⼤量に書き込んだ後、MapReduceで解析することが得意– ⼤量のデータを相手にリアルタイム性の高い処理の構築が可能

※既に、Facebook, LINEさんが使われています。

Page 63: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation63

参考:ジョブ管理システム

� 全ての処理が1回のMapReduceで終了する訳ではない� 例えばグラフの探索は幅優先探索で⾏うため常にグラフ全体の構造と現在の位置を入⼒に

して同じMRを繰返すことになる

� 多段のMapReduceは多段のjobであり、多段の依存batchになる� 現状ではHadoopには標準のbatchスケジューラーは無く、シェルスクリプトを書かねば

ならない– 異常系の処理をここで書かなければならない

� しかし、多くのジョブ管理システムがOSSにて開発されている� メジャーな物として米Yahoo!が開発しているOozieがある

– http://yahoo.github.com/oozie/

� IBMではOozieに加え、付加価値機能を追加済み。

Page 64: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation64

通常のアプリが直接HDFSに書き込めない

� アプリの出⼒やログをHDFSに集めるためのOSSがいくつかある

� Facebook Scribe: https://github.com/facebook/scribe� Cloudera Flume: https://github.com/cloudera/flume/wiki� rsyslog: http://www.rsyslog.com/doc/omhdfs.html

� またRDBMSのデータをHDFSとの間で送受信するためのOSSもある

�Sqoop– http://www.cloudera.com/downloads/sqoop/

Page 65: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation65

機械学習ライブラリー : Mahout

� MahoutはMapReduceを⽤いて記述された機械学習⽤のライブラリー� マーケティング等に⽤いられる

– バスケット解析 (ビールとおむつが同じ客に良く売れる)– クラスタリング (データを自動で分類できます)– リコメンドエンジン (同じ製品を買ったお客様はこんな商品を買って

います)– 等

� 現在非常に注目されており、利⽤実績も増えている– 楽天、Yahoo!、等

� http://mahout.apache.org/

Page 66: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation66

参考:MapReduce以外の演算パラダイムを利⽤する※もうすぐYARN (Hadoop v2)が。� Apache Hama

– http://incubator.apache.org/hama/– MapReduceでは難しい巨⼤な⾏列同士の演算をBSPにて実現する– HDFSとZooKeeperは利⽤している。HDFSは他の分散ファイルシステムに変

更可能

� Yahoo!からスピンアウトしたHadoopの開発者達は次世代のHadoopを開発中である

– MapReduce以外の演算パラダイムをHadoop上で実現することを可能とする予定

– http://developer.yahoo.com/blogs/hadoop/posts/2011/02/mapreduce-nextgen/

Page 67: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation67

Hadoop を利⽤した(バッチ処理)事例� 基本的な考え⽅:Hadoopはサービスレベルがあまり高くない(クリティカルで

はない) 業務のバッチ処理の適⽤が向いています。⇒最近はここが⾦融系、中核の業務系にも用いられはじめています。

� 導入効果の例 (IBM事例で無いものを含みます)※必ずしも、この処理性能を保障するものでは、ありません。

企業種類 処理内容 データ量

短縮の度合い(適⽤前→適⽤後)

短縮度合い

クラスタ規模

Web広告企業 ・クリック情報集計・広告精度追跡 等

700 GB 5日間 → 1時間 1/120 9台

クレジットカード会社

・不正検知⽤モデル作成

36TB 4週間 → 13分 1/32000 70台

流通業 ・顧客別の購買履歴集計

20GB 15時間半 → 58分 1/16 28台

Web系サービス企業

・地図サービスログ集計

170GB 6時間 → 5分30秒 1/65 20台

Page 68: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation68

Hadoop Cluster

� 1年間分の検索ログを処理7000時間 (MySQL)所要する処理を30時間(Hadoop)で。

Hadoop適⽤事例 – クックパッド・たべみる〜分析〜

分析の種類:� SI値� 地域別(SI値)� マッチ度� 組み合わせ

IBMの事例ではありません。

検索ログ

Page 69: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation69

検索キーワード入⼒補助〜Yahoo! Japanの例〜 IBMの事例ではありません。

過去に入⼒された検索キーワードの組み合わせを事前にHadoopで分析し、対象のキーワードが入⼒されると、それに⼀番マッチする補助キーワードを補助入⼒候補として表⽰するためのインデックスを構築。

Page 70: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation70

ようやく、BigInsights /Big SQLです。

Page 71: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation71

エンタープライズHadoopでの新たな考慮点� Hadoop技術を、⼀般の企業内で利⽤する際に、Webサービスなどの利

⽤とは違った新たな考慮点が存在します。最初はスモールスタートだ

が、今後拡張できる基盤は?

ハードウェア構成も可⽤性は

必要?

既存の運⽤監視、ジョブ運⽤環境との連携?

データソースとの連携?

データのバックアップは?

分析システムとの連携?

他のベンダーはアプライアンスって言って

るけど?

Cognos BICognos InsightsSPSS/R/BigSQL

Sqoop/Flume/DataStage

GPFS-FPO

PureData System for Hadoop

HA / GPFS-FPO

統合管理UI / REST

簡単なクラスター追加・管理

Page 72: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation72

従来は・・・ Master NodeSlave Node

Slave Node

NameNodeDataNode

DataNode

TaskTracker

TaskTracker

Job Tracker

Secondary NameNode

Slave Node

DataNode

TaskTracker

Slave Node

DataNode

TaskTrackerDevelopment Node

Eclipse

Flume

Zookeeper

HBase

エンドユーザー

管理者

開発者

Jaql Server

Oozie

Hive

実は、Hadoopはそれ程、簡単ではない!結構、複雑。

新しい分析、開発発注しないと・・・

サーバー、アプリ管理も色々あるな・・・

言語の使い分け、SQLも使えない・・・

Page 73: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation73

BigInsightsは Master Node

Map/Reduce

Distributed File System

Slave Node

Slave Node

NameNodeDataNode

DataNode

TaskTracker

TaskTracker

Job Tracker

Secondary NameNode

Slave Node

DataNode

TaskTracker

Slave Node

DataNode

TaskTracker

Web Console

BigInsights Development Node

Eclipse BigInsights Plug-in

Flume

Zookeeper

HBase

Catalog

エンドユーザー

管理者

開発者

Jaql Server

Oozie

Hive

Hadoopにかかる負担を最小に!

Hadoopを知らなくても使

える!

今までのSQLの知識を活⽤

できる

同じコンソールからリソース管理もでき

る!

Page 74: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation74

BigInsightsの3つのエディション:InfoSphere BigInsights Brings Hadoop to the Enterprise

①Basic Edition

③EnterpriseEdition

Breadth of capabilities

Ente

rpri

se c

lass

商⽤・非商⽤で無償

商⽤向け、およびテスト向け:サイズ課⾦

ApacheHadoop

④PureData for HadoopBigInsihgtsアプライアンス

②Quick StartEdition非商⽤目的で無償(サポートなし)

Pre-announced

Page 75: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation75

� InfoSphere BigInsightsBigInsightsはHadoopを拡張する機能群とエンタープライズ向け連携機能群、そして活⽤を容易なツールを介して実装し、開発サイクルを短縮化できるソリューション・パッケージです。《非商⽤環境で無償、容量無制限のQuickStartエディションも登場》

Hadoop拡張レイヤー

Masterノード

SlaveノードCognos

BI*(バンドルバンドルバンドルバンドル)Hive(JDBC) / REST(http)

DataStage*(連携)

DB2*(連携)

R*(連携)

Streams*(バンドルバンドルバンドルバンドル)

Data Explorer*(バンドルバンドルバンドルバンドル)

MachineDataAnalytics*(アクセレレーターアクセレレーターアクセレレーターアクセレレーター)

SocialMediaAnalytics*(アクセレレーターアクセレレーターアクセレレーターアクセレレーター)

Nutch*(連携)Gnip

*(連携)

LZO/bzip2圧縮(分割可能)

PureData*(連携)

DBデータ取り出し・送り出し

データ探索の可視化

BigSheets

アプリ・リンク

ワークフロー

FLEXスケジューラースケジューラースケジューラースケジューラー

連携レイヤー

Guardium*(連携)

スケールアウト

BigSQLによるSQL互換のインターフェイス

HA on HDFS/GPFS-FPO

AdaptiveMR((((Symphony))))

(連携)

JAQL JAQLによるより高度なM/Rスクリプティング

Web管理コンソール

Page 76: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation76

オンライン

BigInsights

� BigInsights(Hadoop)とDB2/Netezzaは連携可能� Hadoopの活⽤のポイントは、「バッチ処理の並列化(高速化)」、

「眠っている履歴データ(ログ)、非定型データの有効活⽤」

DB2

HDFS

DB2/JDBC Bridge

DB2

DataStage

Hadoop

DB2からHadoopへのJobをキックすることができる。(処理はUDF経由でJAQL呼び出し)

HadoopのデータとしてDB2を透過的に利⽤できる(UDF経由)

R Bridge

SPSS

統計解析ソフト

分析データのソースとしてHadoopを利⽤可能(になる予定)

JAQL

SQL

JAQL

Flume (サポート対象)高速データ移動、パラレル処理が可能なDataStage

BigInsightsは既存システムと連携可能

HadoopStreaming

RubyCなど

RJAVA

files

files

files

files

Page 77: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation77

DB2とInfoSphere BigInsightsの連携

JaqlSubmitJaqlSubmit UDFUDF HDFSReadHDFSRead UDFUDF

UDFUDFSQLSQLDB2DB2Cubing servicesCubing services

JaqlJaql clientclient

JaqlJaql serverserverWeb log data on Web log data on HadoopHadoop HDFSHDFS

InfosphereInfosphere WarehouseWarehouse

InfosphereInfosphere BigInsightsBigInsights

HttpHttp (⼤量のデータを移動(⼤量のデータを移動させることには向かない)させることには向かない)

HttpHttp

Persistent data

例えば、過去10年分の

データを保管

例えば、直近2年分のオンライン・デー

タを保管①

Page 78: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation78

お知らせ:クイックスタート・エディションは無償で利⽤可能� 非商用環境において、無期限・サイズ無制限で利⽤可能。

-提供形態:バイナリー版(インストーラー)⇒クラスタ環境構築可能VMイメージ (本日のデモで使います)

ここからダウンロード

ダウンロード:http://www.ibm.com/software/data/infosphere/biginsights/quick-start/index.html

Page 79: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation79

IBM – BigInsightsコアエンジン

分析アクセレレーター

ユーザー・インターフェイス

ビジュアライゼーション 管理・コンソール

テキスト分析

アプリケーション・アクセレレーター

MapReduce +

ワークロード管理 セキュリティー

開発ツール

連携

データベース&DWH

Gurdium監査Optimデータマスキング・プライバ

シー

ETL-DataStage統計解析-SPSS

テキスト分析-ICA

インデックス

Apache™ Hadoop®

バンドル

Cognos BIBIエンジン

Streamsリアルタイム処理

Data Explorer検索エンジン

IBMは、コア部分に加えて付加価値機能、バンドル、連携モジュールをパッケージしています。

HadoopmapReduce

HadoopHDFS

Page 80: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation80

BigInsightsに含まれるコンポーネント*(1 of 2):

機能 VersionBasic Edition

Enterprise Edition

統合インストーラー 含む 含むHadoopコア (ユーティリティー, HDFS, MapReduce) 1.1.1 含む 含むPig (言語 / クエリー言語) 0.10.0 含む 含むFlume (データ収集/集約) 1.3.0 含む 含むHive (DWH/クエリー) 0.9.0 含む 含む

Lucene (テキスト・サーチ) 3.3.0 含む 含むZookeeper (プロセス制御(コーディネイション)) 3.4.5 含む 含むAvro (データ・シリアライゼーション) 1.7.2 含む 含むHBase (高速データ読み書きストア) 0.94.3 含む 含むHCatalog (テーブル・ストレージ管理サービス) 0.4.0 含む 含むSqoop (RDBMSバルクデータ・トランスファー) 1.4.1 含む 含むOozie (ワークフロー/ジョブ・オーケストレーション) 3.2.0 含む 含むJaql (IBMアルマデン研究所が開発したクエリー・スクリプト言語) 含む 含む

オンライン・ドキュメント(マニュアル:InfoCenter) 含む 含むJAQLモジュールからのJDBCソースへのアクセス 含む 含むDB2連携 (ジョブのサブミット、データの読み込みなどの関数) 含む 含む

Page 81: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation81

オープンソースのHadoopにはない機能Basic Edition

Enterprise Edition

Big SQL (標準的なSQLクエリー・サポート, JDBC/ODBCドライバ, DB2/Netezza/ Teradataなどからのデータのロード) なし 含む

JaqlからのPure Data for Analytics (Netezza), DB2 LUW w/ DPF連携R連携 (Jaqlモジュールから Rスクリプトの呼び出し) なし 含むLDAP/PAM/ファイル認証, Guardium, SPSS, Optim連携サポートなど なし 含むWEBコンソール なし 含む分析アクセレレーター (ソーシャルメディア、マシーンデータ解析) なし 含む

Platform Computing Symphonyエンハンス (GPFS-FPO, Adaptive MapReduce, 圧縮テキストファイル処理, flexible job スケジューラー, 高可⽤性など)

なし 含む

テキスト分析モジュール なし 含む

Eclipse開発ツール(テキスト解析の開発、Jaql,Hive,Java,Big SQLなど) なし 含むデータインポート・エキスポート、WEBデータ収集、機械学習などのモジュール なし 含むWebベースのアプリケーション・カタログ機能 なし 含むBigSheets: 表計算シートによる解析ツールBigIndex: Lucene拡張の分散インデックス・サーバ なし 含む

IBMによるサポート なし 含むStreams, Data Explorer, Cognos BI (限定ライセンス) なし 含むストレージサイズの制限 制限あり 制限なし

BigInsightsに含まれるコンポーネント*(2 of 2):

Page 82: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation82

従来は・・・

�Apache Hadoop

Hadoop管理のためのUIは提供されるが、使い勝手はよくない。。。

Page 83: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation83

Welcomeクラスタ状況

ファイル管理

アプリ状況Sheets

アプリケーション

ようこそ画面

BigInsightsは:

Page 84: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation84

表シート形式のデータ探索

アプリケーション実⾏管理

スケジューリング管理

アプリケーション・デプロイ

ノード管理(追加削除)

サービス管理(プロセス)

クラスター管理

ファイル管理

セキュリティー管理

Page 85: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation85

GUIからアプリ作成

Page 86: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation86

作成したアプリケーションのリンク実⾏機能

作成したアプリの逐次処理

Page 87: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation87

BigSheets – プログラミングなしでMapReduce。

コーディングをすることなく

データ探索、処理記述が可能

Page 88: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation88

BigSheetsで⼀連の分析・処理操作を実⾏

画面上の操作を自動的にPig変換してMapReduce

実⾏

収集 抽出 探索・可視化 繰り返しデータのクローリング・統計データ、生

データなど

サンプルデータから分析が可能なフォーマットにクレンジン

グ・平準化

分析、アノテート、フィルタリング、

結果の可視化

トライアンドエラー⽅式で繰り

返し

まずは、サンプリングデータに

対して処理

Page 89: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation89

分析ワークフローの定義も可能

1. データ収集、サンプリング 2. GUIツールから処

理ロジックを実装

3. ロジックのトライ&エラー、テスト、探索

4.アプリケーションとし登録して実⾏

5. 定期実⾏

Page 90: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation90

分析の可視化も可能:⾒える化だけではなく、「⾒ながら」

分析をする前の仮説を⽴てる際に、データの傾向を捕らえることがトライ&エラーで可能

になります

Page 91: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation91

チャートはカスタマイズ可能

マルチ・シリーズの

データ可視化も可能

Page 92: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation92

IBM – BigInsightsコアエンジン

分析アクセレレーター

テキスト分析

アプリケーション・アクセレレーター

MapReduce +

ワークロード管理 セキュリティー

インデックス

Apache™ Hadoop®

通常のApache

HDFSとIBMが提供するGPFS-FPOファイル

システムの選択 Hadoop

mapReduceHadoopHDFS

エンジンとファイルシステムの選択

通常のApache

MapReduceエンジンと

IBMが提供するAdaptive MapReduceエンジンの

選択

エンタープライズ領域で求められる処理性能、可⽤性の要件に合わせたエンジンとファイルシステムを選択することができます。

Page 93: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation93

Adaptive MapReduce(Platform Computing Symphony)

グリッド・サーバー

ブローカー

エンジン

Each engine polls broker~5 times per second (configurable)

Send work whenengine ready

クライアント

インプットデータのシリアライゼーション

ネットワーク転送(client to broker)

処理エンジンによってブローカーをポーリングする待ち時間

ネットワーク転送(broker to engine)

De-serializeInput data

結果処理

Serializeresult

ブローカーに結果をポストする時間

Time

BrokerCompute time

Symphonyのアドバンテージ:

Efficient C language routines use CDR (common data representation) and IOCP rather than slow, heavy-weight XML data encoding)Network transit time is reduced by avoiding text based HTTP protocol and encoding data in more compact CDR binary formatProcessing time for all Symphony services is reduced by using a native HPC C/C++ implementation for system services rather than JavaPlatform Symphony has a more efficient “push model”that avoids entirely the architectural problems with polling

BigInsightsが採用したPlatform SymphonyのMapReduceフレームワーク

インプットのシリアライゼーション

ネットワーク転送

SSM 処理時間 &ロギング時間

総処理時間ネットワーク転送(SSM to engine)

デシリアライゼーション

シリアライゼーション

ネットワーク転送(engine to SSM)

結果処理

待ち時間の最小化、シリアライゼーション、デシリアライゼーションの高速化、シャッフル処理の高速化、ネットワーク最適化などを実装

MapReduce処理の処理時間が短縮・高可⽤性を向上できる仕組みを提供

Page 94: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation94

GPFS-FPOファイルシステム従来のHadoop ファイルシステム(HDFS)の代替となる付加価値ファイルシステム

分散ファイルシステム: GPFS-FPO

分散ファイルシステム: HDFS

Map/Reduce API

Hadoop FS APIs

Higher-level languages: Hive, BigSQL JAQL, Pig …

機能概要:-単一障害ポイントなし-ビルドインされたHA機能

-POSIX準拠-ACLサポート-ストレージプールのサポート-スナップショット・バックアップ

アプリケーション

アプリケーションからは

ファイルシステムの違いを意識する必要はありません。

Page 95: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation95

IBM – BigInsightsコア・エンジン

分析アクセレレーター

ユーザー・インターフェイス

ビジュアライゼーション 管理・コンソール

テキスト分析

アプリケーション・アクセレレーター

Map Reduce +

ワークロード管理 セキュリティー

開発ツール

インデックス

Apache Hadoop

バンドル

Cognos BIBIエンジン

Streamsリアルタイム処理

Data Explorer検索エンジン

HadoopmapReduce

HadoopHDFS

連携

データベース&DWH

Gurdium監査Optimデータマスキング・プライバ

シー

ETL-DataStage統計解析-SPSS

テキスト分析-ICA

今までのSPSS(統計解析)で処理可能なデータ量、対象

を⼤幅に拡⼤

BI(ビジネス・インテリジェンス)からDBだけではなくHadoopに蓄積されているデータも処理

対象に

Page 96: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation96

Cognos BI v10.2.1とBigInsights v2.1連携

CognosInsight

Application(Map-Reduce)

Storage(HBase, HDFS)

Hive BigSheets

CSV

InfoSphereBigInsights

Hivevia JDBC

Cognos BI server

Text AnalyticsREST API

探索 & 分析 レポート

SQL Interface

via JDBC

� 今までのBIで扱えるデータの範囲を拡⼤することが可能に。

� Hadoopで処理した結果をCSVファイルで保存し、その結果をBigSheetsで整形、処理、そして、CognosInsightでデータ取り込みを⾏う事が可能です。

Big SQLによってCognos BIサーバから様々な処理をプッシュダウンすることが可能になります

Page 97: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation97

SPSS Analyticサーバー Hadoopプッシュバック

97

Big DataRequest

Stream File

Modeler Client Modeler Server

IBM SPSS Modeler

IBM SPSS Analytic ServerHadoop pushback

Hadoop Job

Analytics

IBM InfoSphere BigInsights& Other Hadoop Distributions

Relational Database

SQL / UDF

� SPSS Analytic Server の前提としてSPSS Modeler Serverが必要となります。� SPSS Modeler/Modeler Serverは V15 FP2以上が必要となります。

SPSS Modelerの分析処理をHadoop上で⾏うことができるようになります。

従来とおりのSPSSユーザー・インタフェースで⼤量データを取り扱えます。Hadoop内のHDFSファイル、Hcatalogによるテーブル定義は、SPSS Analytic Serverにデータソースとして登録するため、ユーザは物理的なファイルを意識する必要がありません、

Page 98: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation98

SPSS Analyticサーバ HadoopプッシュバックAnalytic Server入⼒ノード

Analytic Server出⼒ノード

*1,*2 : 2013年5月現在

SPSS Modelerの使いやすさをそのまま利⽤でき、SPSS

Modelerが備えているデータ加⼯処理⽤ノードのほとんどの

機能を利⽤可能

スコアリングについては、ほとんどのモデリング手法でのスコアリングをHadoop上で利⽤可能-Hadoop上で可能なモデリング手法は、「Liner」、「Neural」、「CHAID」、「Quest」「C&R Tree」をサポートしています。(*1) SPSS Analytic Server からデータベースにアクセスすることも可能です。DB2 , Netezza , Oracle , SQL Server, Teradata をサポートしています。(*2)

Page 99: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation99

BigInsightsコア・エンジン

分析アクセレレーター

ユーザー・インターフェイス

ビジュアライゼーション

管理・コンソール

テキスト分析

アプリケーション・アクセレレー

ター

Map Reduce +

ワークロード管理

セキュリティー

開発ツール

連携

データベースDWH

情報統制ガバナンス

ETL統計解析

インデックス

Apache Hadoop

バンドル

Cognos BIBIエンジン

Streamsリアルタイム処

Data Explorer検索エンジン

HadoopmapReduce

HadoopHDFS

ビルドした解析モジュール-アクセレレーターを利⽤することで利便性を向上し

ます。ポイント:単なる

Hadoop提供ではない

分析アクセレレーター

Page 100: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation100

生の

ログ

・デ

ータ

とマ

シン

・デ

ータ

①ログの検索【インデックスの作成と検索】

②時系列に基づくシーケンス解析③特定原因の分析(カイ二乗検

定)

複数システムから収集する様々なログデータ

を平準化し、分析する

MDA

MDAアクセレレーターで実現する3つこと

Page 101: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation101

①インデックス作成と検索

②パターン発⾒と頻度の分析

③原因の推定と有意検定

様々なRAWデータを取り込む際に正規化されたフォーマットに整形することが可能(アダプター)。フォーマット変換のカスタマイズは可能です。

MDA処理の流れ

データの統合と変換

Page 102: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation102

取込が可能ログフォーマット(アダプター)� Apache Webaccess� Delimited Separated Values, もしくは CSVファイル� Data Power®� Generic (これが⼀般的なログフォーマット(正規表現による取込設定を⾏う)) � Hadoop Data Node � Hadoop Jobtracker� Hadoop Name Node � Hadoop Secondary Name Node � Hadoop Task Attempt � Hadoop Task Tracker � Syslog, もしくは システムログファイルなど� WebSphere® Application Server

Page 103: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation103

①検索

Data Explorer (UI)

BigIndex(分散インデックス)

Page 104: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation104

例:基本的なファセット検索画面(Data ExplorerのUI画面)

Page 105: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation105

例:インデックス・アプリの実⾏画面

Page 106: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation106

②時系列シーケンス化

平準化済み時系列データのシーケンス化

Page 107: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation107

③ログの相関関係の調査

Page 108: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation108

例:ログデータの時系列シーケンス表⽰

Page 109: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation109

IBM – BigInsightsコア・エンジン

分析アクセレレーター

ユーザー・インターフェイス

ビジュアライゼーション 管理・コンソール

テキスト分析

アプリケーション・アクセレレーター

Map Reduce +

ワークロード管理 セキュリティー

開発ツール

連携

データベースDWH

情報統制ガバナンス

ETL統計解析

インデックス

Apache Hadoop

バンドル

Cognos BIBIエンジン

Streamsリアルタイム処理

Data Explorer検索エンジン

HadoopmapReduce

HadoopHDFS

今までのSQL知識を活⽤できるBig SQLを提供

Page 110: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation110

� DWHと連携全てをDB/DWHに格納処理するのではなくHadoopでも分担処理

Hadoopは、Java/専⽤スクリプト言語で記述・実装する必要があり簡単ではないと思われています。

� SQLをサポートすることにより、今までの知識を活⽤することが目的。

なぜSQLクエリがHadoopに必要なのか?

110

プリプロセス型 アーカイブ型 探索・分析型

リアルタイム

バッチランディング

フィルタリングアーカイブ

探索分析

データウェアハウス

統合的に格納

データウェアハウス

データウェアハウス

保存

Page 111: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation111

アプリケーション

BigSQL: SQLクエリーによるHadoopへのアクセス

BigSQLエンジンBigInsights

Data Sources

SQL

JDBC / ODBC Server

JDBC / ODBC Driver

� BigInsihgtsへNative SQLアクセス–ANSI SQL 92+、標準的なシンタックスサポート(joins, データ型など …)

� JDBC/ODBCドライバー– プリペア⽂/ キャンセルのサポート、– データベース・メタデータAPI、SSLのサポート

� 最適化実⾏の仕組み–MapReduceによる並⾏処理への変換–★インメモリーによる直接アクセス(low-latency queries向け・

シングルモード)

� 様々なデータストアのサポート– HBase (including secondary indexes)– CSV, Delimited files, Sequence files– JSON– Hive tables

Hive HBase CSV

Page 112: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation112

BigInsightsからのSQLの呼び出し⽅法は?

� コマンドライン (JSqsh shell) � Webインターフェイス (BigInsights webコンソール) � Eclipse (BigInsights プラグイン) � ODBC/JDBC ( 3rdパーティのSQLツール含む)

Page 113: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation113

Squirrel SQL クライアントからのSQL実⾏

Page 114: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation114

Microsoft ExcelとBig SQLの連携(via ODBC)

© 2013 IBM Corporation

Page 115: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation115

SQLサポートの概要(クエリ編):� Projection SELECT col1, col2 FROM t1

� RestrictionSELECT * FROM t1 WHERE col1 > 5

� Union SELECT EMPNO FROM EMPLOYEE WHERE WORKDEPT LIKE 'E%' UNION SELECT EMPNO FROM ACTIVITIES WHERE PROJNO IN('MA2100',

'MA2110', 'MA2112')

� Difference (EXCEPT)(SELECT * FROM T1) EXCEPT ALL (SELECT * FROM T2)

Intersection、Joins、Subqueries 、Built-in functionsなどなど。

Page 116: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation116

SQL サポート – Join編� ⼀般的なJOIN⽅法とANSI joinシンタックスをサポート

� 例えば、HiveはANSI joinシンタックスはサポート

select ...from tpch.orders,

tpch.lineitemwhere o_orderkey =

l_orderkey

select ...from tpch.orders join

tpch.lineitemon o_orderkey =

l_orderkey

select ...from tpch.orders,

tpch.lineitemwhere o_orderkey =

l_orderkey

select ...from tpch.orders join

tpch.lineitemon o_orderkey =

l_orderkey

116

Page 117: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation117

SQL サポート – Subqueries(サブクエリ)編

� Big SQLはサブクエリ(副参照)もサポート:

select c1, (select

count(*) from t2)from t1...

select c1from t1where c2 > (select ...)

Page 118: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation118

SQLサポート – 関数編(⼀部抜粋) � 今までのSQLで使われている関数もサポート

– Numeric

– Trigonometric

– 日付関連の関数

– ⽂字列関数

– Aggregates関数などなど.

abs ceil floor ln log10mod power sqrt sign width_bucket

cos sin tan acos asinatan cosh sinh tanh

_add_days _add_months _add_years localtimestamp _age_day_of_week _day_of_year _week_of_year _days_between _months_between_years_between _ymdint_between _first_of_month _last_of_month extract

char_length bit_length octet_length upper lowersubstring position index translate trimjson_get_object

Page 119: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation119

カタログ・テーブルのサポート (Hcatalog編)[localhost][foo] 1> select * from select * from select * from select * from syscat.tablessyscat.tablessyscat.tablessyscat.tables where where where where

tablenametablenametablenametablename='users';='users';='users';='users';

+------------+-----------+

| schemaname | tablename |

+------------+-----------+

| default | users |

+------------+-----------+

1 row in results(first row: 0.14s; total: 0.15s)

[localhost][foo] 1> select * from select * from select * from select * from syscat.columnssyscat.columnssyscat.columnssyscat.columns where where where where

tablenametablenametablenametablename='users';='users';='users';='users';

+------------+-----------+-----------+--------+-----------+-------+

| schemaname | tablename | name | type | precision | scale |

+------------+-----------+-----------+--------+-----------+-------+

| default | users | id | INT | 10 | 0 |

| default | users | office_id | INT | 10 | 0 |

| default | users | name | STRING | 0 | 0 |

| default | users | children | ARRAY | 0 | 0 |

+------------+-----------+-----------+--------+-----------+-------+

4 rows in results(first row: 0.19s; total: 0.21s)

Other BigInsights catalog tables track index and schema information

Page 120: IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)

© 2013 IBM Corporation120

ありがとうございました。

IBM BigInsights