...

ビッグ・ データ用 エンジン

by user

on
Category: Documents
11

views

Report

Comments

Transcript

ビッグ・ データ用 エンジン
Hadoopによる大規模解析に
Javaを使用
COMMUNITY
JAVA IN ACTION
ビッグ・
データ用
エンジン
JAVA TECH
( オ ー プンソー ス )
Hadoop
プロジェクトの創設
者 Doug Cutting 氏
(左)と Cloudera
チームのメンバー
ABOUT US
David Baum
粒
粒子加速器から亜原子粒子を探す場合
や、数十億あるWebページでの購買パ
ターンを判別する場合のどちらであっても、
ビッグ・データには、絶え間ないデジタル情報
の流入に起因する、膨大な数の複雑な計算
による問題があります。IDC(International
Data Corporation)の『 2011 Digital
画像: NICHOLAS PAVKOVIC、写真:BOB ADLERBOB ADLER
ORACLE.COM/JAVAMAGAZINE
NOVEMBER/DECEMBER 2012
blog
22
企業概要
CLOUDERA
cloudera.com
本社所在地:
カリフォルニア州パロアルト
業界:
エンタープライズ・
ソフトウェア
従業員数:
300
Java technology
使用している Java テクノ
ロジー:
Java SE
ORACLE.COM/JAVAMAGAZINE
Universe Study』によると、昨年は全世界
で1.8ゼタバイト(1.8兆ギガバイト)を超え
るデータが作成されました。この増幅の原
因は、数十億台の携帯電話、数百億件のソー
シャル・メディア投稿、および自動車、需給計
器、輸送コンテナ、店舗設備、POS端末など
のさまざまな分野で使用されて拡張している
多数のネットワーク・センサーです。Apache
Hadoopのおかげで、組織は、このデータの
すべてをコスト効率の高い方法で解析できる
ようになりました。
2012 Duke’
s Choice Awardを受賞し
たHadoopは、Clouderaのチーフ・アーキテ
クトとApache Software Foundationの会
長を務めるDoug Cutting氏が考案したもの
です。Cutting氏の子供たちが遊びに使って
NOVEMBER/DECEMBER 2012
いたおもちゃの象にちなんで名付けられたこ
のオープンソース・ソフトウェア・プラットフォー
ムは、Javaで記述されています。そのため、企
業は、安価な汎用サーバーを使用して、保有し
ているデータの潜在的価値を顕在化すること
ができます。Hadoopは分散オペレーティン
グ・システムと呼ばれこともあり、数千台のコ
ンピュータを、
データを保存して計算を実行す
る1つの統合システムとしてとらえることがで
きます。これは、エンタープライズ・アプリケー
ションの構造化データを解析するのに理想的
な方法であるばかりでなく、Webページ、
ソー
シャル・メディア・サイト、電子メール交換、検索
索引、
クリックストリーム、機器センサー、
ビデ
オ・カメラなどからの非構造化情報を解析する
こともできます。Hadoopでは、サーバーとス
トレージ機器を追加するだけで、簡単に規模
を拡大して能力を増強できます。また、その
分散型という特性およびパラレル処理アーキ
テクチャによって、高可用性インフラストラク
チャを実現しています。
Cutting氏は、次のように説明しています。
「Hadoopは、汎用コンピュータを使用して
分散システムを構築しているため耐障害性
があり、1つのノードですべてが失われた場
合でも継続して動作します。何らかの特殊
なハードウェアを購入せずに毎月100億の
Webページをクロールする必要がある場合
は、膨大な数のコンピュータを並列で動作さ
せる必要があります。ここで話しているデー
タ量は、ハード・
ドライブのアレイに格納でき
る容量や手頃な価格の1台のサーバーで妥
当な時間内に処理できる量とは比較にならな
いほど某大なデータなのです」このレベルの
パフォーマンスと信頼性を適正な価格で達成
できることは、あらゆる業種の組織にとって
魅力的です。
クレジット・カード会 社は、不 正 行 為 の 予
測を支援するためにHadoopを使用してい
ます。エネルギー関連会社は、油田の探索
にHadoopを使用しています。Facebook
やLinkedInなどのソーシャル・メディア・サ
イトは、会員間のやりとりを擬人化するのに
Hadoopを使用しています。オンライン婚活
サービスの会社は、数百万人の独身者から示
された気が遠くなるような数の選択条件に基
づいて完全に一致する相手を見つけるため
に、Hadoopを使用しています。また、多くの
商業組織が、顧客の市場心理を把握するため
COMMUNITY
rerferum dolupta
JAVA IN ACTION
現在進行中のプロジェクトについ
て、Cloudera チームのメンバーと
打ち合わせをする Cutting 氏
eost dunt offictus is venditet quias utameni molorum
JAVA TECH
fugia vero mollent ut ad quunt parum ventusam et
ABOUT US
Caption goes here Ibus aut aut aut autaturionet
blog
23
COMMUNITY
JAVA IN ACTION
JAVA TECH
にHadoopを使用しています。
これらのアプリケーションはまったく異な
るように見えますが、すべてのアプリケー
ションに共通のものが1つあります。それは
膨大な量の情報の中からパターンを見つけ
ることです。Hadoopでは、以前は高価な
スーパーコンピュータへ任せていた計算タ
スクを、数千台におよぶ汎用のサーバーとス
トレージ・デバイスへと分散します。
走査検索、索引作成の各分野における6つの
Clouderaに加わりました。
特許に結びつきました。
Cutting氏と他の数百人の開発者による努
1993年にPARCを去った後、Cutting氏 力のおかげで、Hadoopは大規模な本番環境
はApple、Excite、Yahoo!を経て、2000年 における大量データの高速処理に適した選択
に、Javaで記述された効率的なフル機能の
肢として、今ではテクノロジーの世界全体で広
テキスト検索エンジンを開発するLuceneプ く受け入れられています。Facebookは、デー
ロジェクトでオープンソースの分野に進出し タ量が30PBの最大のHadoopクラスタを
ました。オープンソース・コミュニティにおけ 所有していると主張しています。Yahoo!は、
る取り組みは、Cutting氏のベンチャー企業 Search WebmapをHadoopアプリケーショ
と協力する形で進められてきま
ンとして、コア数が10,000を超
研究用から本番環境用まで
した。Yahoo!では、Cutting氏 グループでの
えるLinuxクラスタ上で稼働させ
オープンソース・コミュニティではLucene、 はミッションクリティカルなビジ 取り組み
ています。また、Google Joost、
Nutch、Avroプロジェクトの創設者としてよく ネス分析に使用する本番環境用
Hadoopは、1つ Microsoft、Netflix、Twitter、
知られているCutting氏は、情報検索と全文
のHadoopストレージと分析ク の団体によって
New York Timesも、大規模な
検索の専門家です。1988年にスタンフォード ラスタの構築/デプロイを担当す 管理されている
計算タスクの処理をHadoopに依
大学で言語学の学位を取得した後、Xeroxの るチームの主要メンバーでした。 わけではなく、
存しています。
パルアルト研究所(PARC)で職に就き、高性 2009年には、企業の要望に合 さまざまな団体
の共同作業に
能検索エンジン、複数の革新的な検索パラダ わせて特別に作成された100%
オープンなコラボレーション
H a d o o p は 、元 は G o o g l e の
イム、高度な言語分析手法、および高品質のテ オープンソースのHadoopディ よって管理され
ています。
MapReduceとGoogle File
キスト自動要約アルゴリズムを開発しました。 ストリビューションで あるC D H
Systemの研究論文から派生した
PARCでの業績は、テキスト検索、情報検索、 のリリー スを 支 援 するた めに 、
ABOUT US
左:午後の会議に
備えて昼食を取り
ながら仕事をする
Cutting 氏。
右:社内を忙しく
移動するCutting 氏。
blog
24
ORACLE.COM/JAVAMAGAZINE
NOVEMBER/DECEMBER 2012
ORACLE.COM/JAVAMAGAZINE
JAVAの利点
Cutting氏によると、分散ソフトウェア・プラッ
トフォームの開発は、1台のマシンだけで動作
するソフトウェアの開発と比べて何倍も手の
込んだものになります。しかし幸いなことに、
Javaによって、多くのレベルで工程が簡素化
されます。
Cutting氏は、次のように説明しています。
「リモートで何かとやり取りをする各ポイント
では、何が起こるか分かりません。遅延、タイ
ミングに関する数多くの未知の問題、および
障害が発生する可能性、つまり、予想しなかっ
たところでエラーが突然起きることがありま
す。システムの分散化が進むほど、その傾向
は強くなります」
分 散システムのデバッグは、単 一 のコン
ピュータ上でプログラムを開発する場合よ
りもはるかに困難であるため、基板の部分に
共通のOSレイヤーを確立することは理にか
なっています。Javaは、簡単なデバッグと優
れたパフォーマンスの最適な組合せを提供し
ます。
Cutting氏は、次のように述べています。
「型安全性とガベージ・コレクションは、Java
による新システムの開発をはるかに容易にし
ます。メモリ・リークを心配する必要はありませ
ん。また、Javaプログラムは、破滅的なクラッ
NOVEMBER/DECEMBER 2012
Hadoopの産業用途
電子小売業
■■
抱き合わせ販売用推奨エンジン
■■
広告のターゲティング、分析、予測、最適化
■■
事象解析(目標とする結果を得るために必要な一連の手
順を特定)
金融サービス
■■
コンプライアンスと法規制に関するレポートの作成
■■
リスクの分析と管理
■■
不正検出とセキュリティ分析
医療とライフサイエンス
■■
患者治療の質とプログラムの分析
■■
サプライ・チェーン管理
■■
新薬の発見および開発の分析
小売 / 消費財
■■
販売計画とマーケット・バスケット分析
■■
キャンペーン管理とカスタマ・ロイヤルティ・プログラム
■■
サプライ・チェーンの管理と分析
COMMUNITY
JAVA IN ACTION
シュが比較的少ない傾向にあります。さらに、
多くのことをコンパイル時に確認できます。プ
ログラムが実行時に失敗しても、Javaであれ
ば、CまたはC++よりも簡単にデバッグができ
ます」
JAVA TECH
則としています。何かを一方的に行うことはで
きません」Hadoopエコシステムについて説
明するために、Cutting氏はよくHadoopを
Linuxと比較します。
「Linuxは、単なるカーネ
ルを超えた存在です。Linux上に構築される
プログラミング・スタイルと対話形式のすべて
がそうであるように、開発者がHadoopエコ
システム内で作成するアプリケーションは、セ
キュリティなどのもっとも重要な調整機能を
共有することになります」
ABOUT US
もので、波瀾万丈な歴史を歩んできました。そ
の歴史は、今日の市販製品とオープンソース
製品間の利害の対立をよく表しています。
Cutting氏は、次のように回想しています。
「私は、Nutchと呼ばれるプロジェクトの小
さなチームと協力して、Webクローラとイン
デクサを作成していました。これらはGoogle
やBingと似ていますが、オープンソース・プ
ロジェクトとして実施しました。Googleが
分散ファイル・システムとその上で動作する
MapReduceコンピューティング・レイヤーに
ついての研究論文を公開したときに、それが
私たちの必要としていたものであることが分
かりました。つまり、プログラムの作成と操作
が決して難しくはないマシン群に、ストレージ
と計算処理を分散させる体系的な方法が、そ
れだったのです」
Cutting氏は、これらのメソッドをオープ
ンソースとしてJ a v aで書き直し、N u t c h
プロジェクトに含めることを決定しました。
Yahoo!がファイル・システムの分散部分に
興味を示したときに、Cutting氏は、Nutch
からこ れら の メソッド を 分 離し て 名 前 を
Hadoopに変更し、別のベンチャー事業とし
てHadoopの開発を開始しました。
現在、多くの組織がHadoopエコシステム
に貢献しています。この多様性がある世界規
模のコミュニティには、独立系開発会社、請負
業者、ベンチャー企業、政府機関が参加して
います。Yahoo!は、プロジェクトにもっとも
貢献している企業であり、その業務において
Hadoopを幅広く使い続けています。
Cutting氏は、次のように説明しています。
「Hadoopは、1つの団体によって管理され
ているわけではなく、これらの多種多様な団
体のすべてが協力することによって管理され
ています。
ソフトウェアに関する決定は、全会一致を原
通信
■■
顧客離れの防止
■■
呼詳細情報(CDR)分析
■■
ネットワークのパフォーマンスと最適化
政府機関
サイバー・セキュリティ
■■
コンプライアンスおよび法規制に関する分析
■■
エネルギー消費量と二酸化炭素排出量の管理
■■
blog
25
ORACLE.COM/JAVAMAGAZINE
NOVEMBER/DECEMBER 2012
COMMUNITY
JAVA IN ACTION
基づいて対話型計算と増分更新をサポートす
るようになると予測しています。
Cutting氏は、次のように説明しています。
「現在は、単純なクエリを行って待機してい
ると、結果が得られるようになっています。私
は、このプラットフォームがよりいっそう多目
的に使用されるようになると考えています。
Hadoopは、バッチ計算に基づいたものでも
なく、また単純なキー/バリュー・ストアでもな
い、新種のアプリケーションをサポートする
ようになるでしょう。つまり、複雑な表形式の
データに対するかなり複雑なクエリを、従来の
ソリューションよりもはるかにスケーラブルな
方法で送信できるようになると思います」
製 造 会 社 が 工 場 の 作 業 現 場にあるセン
サーからのデータを監視する場合、広告主
が対象顧客を絞り込むために位置情報デー
タを詳しく調査する場合、または”電子小売
業”が顧客層の分類を改善するためにWeb
I対話型計算の未来
ログ・ファイルを調査する場合のいずれでも、
Hadoopは、バッチ計算用の
Hadoopがそのソリューションとなります。
プラットフォームとして成長し </article>
てきました。その成長の一部
分は、Hadoopno基板となっ
ているMapReduce計算メタ
ファが持つ性質のおかげです。
ほとんどのHadoopジョブに
は、入力ファイルの大規模な
セットが含まれ、それによって
出力ファイルの大規模なセット
が生成されます。これらのジョ
ブをキューイングしてバッチ・
モードで実行すれば、組織は、
膨大な量のデータを処理でき
ます。ただし、Cutting氏は、将 David Baum。カリフォルニア州サンタ
来的にHadoopは進化して、エ バーバラを拠点とし、革新的なビジネス、
コシステムに追加されるさまざ 最新テクノロジー、魅力的なライフスタ
まな新しいクエリ・エンジンに イルについて執筆活動中。
JAVA TECH
の作成に不可欠です。HDFSは、Hadoop
フレームワーク向けにJavaで記述された
Hadoopアプリケーションによって使用さ
れるプライマリ・ストレージ・システムです。
Cutting氏は次のように強調しています。
「基本的に、Javaでいったん記述してしま
えば、そのプログラムはどこででも実行でき
ます。これによって、信頼できる結果を短期間
で出すことが可能になります。それに加えて、
Javaは、比較的簡単に習得できる言語でもあ
ります。かなり制約があることも確かですが、
それでも強力であることには変わりありませ
ん。Javaでは、ベスト・プラクティスを利用して
より簡単にプログラムを作成できます。その
理由は単純で、
ソフトウェアの維持を非常に難
しくするような手段があまりないからです。こ
れは、大規模な共同プロジェクトで開発を行う
場合に役立ちます」
ABOUT US
カリフォルニア州パロアル
トにある Cloudera 社の
ロビーで、休憩中に
電子メールをチェック
する Cutting 氏。
Cutting氏が高く評価しているJavaライ
ブラリ、ユーティリティ、およびツールの機能
豊富なエコシステムは、Javaアプリケーショ
ンをどのように開発、共有、維持するかの選択
肢を開発者に提供します。Cutting氏は、次の
ように述べています。
「オープンソース・コミュ
ニティでは、私たちはツールの大規模なライ
ブラリを持っています。Java開発者が利用で
きるライブラリは、私がこれまで見てきたどの
言語よりも内容が充実しています」
最終的に、Javaの幅広い普及および特有
の移植性によって、さまざまなオペレーティ
ング・システム(例:LinuxとWindowsの多く
の64ビットおよび32ビット・バージョン)で
区別なく実行できる標準プログラムを簡単
に開発できるようになりました。この柔軟性
は、Hadoop分散ファイル・システム
(HDFS)
blog
26
Fly UP