5
ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012 22 COMMUNITY JAVA IN ACTION JAVA TECH ABOUT US blog 画像: NICHOLAS PAVKOVIC、写真:BOB ADLERBOB ADLER ビッグ・ データ用 エンジン Hadoopによる大規模解析に Javaを使用 David Baum (オープンソース) 粒子加速器から亜原子粒子を探す場合 や、数十億あるWebページでの購買パ ターンを判別する場合のどちらであっても、 ビッグ・データには、絶え間ないデジタル情報 の流入に起因する、膨大な数の複雑な計算 による問題があります。 IDC(International Data Corporation)の『2011 Digital Hadoop プロジェクトの創設 者 Doug Cutting 氏 (左)と Cloudera チームのメンバー

エンジン JAVA IN ACTION - oracle.com · oracle.com/javamagazine november/december 2012 24 community java in action java tech about us blog にhadoopを使用しています。

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

22

COMMUNITY

JAVA IN ACTION

JAVA TECH

ABOUT US

blog

画像: NICHOLAS PAVKOVIC、写真:BOB ADLERBOB ADLER

ビッグ・データ用エンジンHadoopによる大規模解析にJavaを使用 David Baum

(オープンソース)

粒粒子加速器から亜原子粒子を探す場合や、数十億あるWebページでの購買パ

ターンを判別する場合のどちらであっても、ビッグ・データには、絶え間ないデジタル情報の流入に起因する、膨大な数の複雑な計算による問題があります。IDC(International Data Corporation)の『2011 Digital

Hadoop プロジェクトの創設者Doug Cutting 氏(左)とClouderaチームのメンバー

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

23

COMMUNITY

JAVA IN ACTION

JAVA TECH

ABOUT US

blog

企業概要CLOUDERAcloudera.com本社所在地:カリフォルニア州パロアルト業界:エンタープライズ・ ソフトウェア従業員数:300Java technology 使用しているJavaテクノロジー: Java SE

Caption goes here Ibus aut aut aut autaturionet

fugia vero mollent ut ad quunt parum ventusam et

eost dunt offictus is venditet quias utameni molorum

rerferum dolupta現在進行中のプロジェクトについて、Clouderaチームのメンバーと打ち合わせをするCutting 氏

Universe Study』によると、昨年は全世界で1.8ゼタバイト(1.8兆ギガバイト)を超えるデータが作成されました。この増幅の原因は、数十億台の携帯電話、数百億件のソーシャル・メディア投稿、および自動車、需給計器、輸送コンテナ、店舗設備、POS端末などのさまざまな分野で使用されて拡張している多数のネットワーク・センサーです。Apache Hadoopのおかげで、組織は、このデータのすべてをコスト効率の高い方法で解析できるようになりました。 2012 Duke’s Choice Awardを受賞し

たHadoopは、Clouderaのチーフ・アーキテクトとApache Software Foundationの会長を務めるDoug Cutting氏が考案したものです。Cutting氏の子供たちが遊びに使って

いたおもちゃの象にちなんで名付けられたこのオープンソース・ソフトウェア・プラットフォームは、Javaで記述されています。そのため、企業は、安価な汎用サーバーを使用して、保有しているデータの潜在的価値を顕在化することができます。Hadoopは分散オペレーティング・システムと呼ばれこともあり、数千台のコンピュータを、データを保存して計算を実行する1つの統合システムとしてとらえることができます。これは、エンタープライズ・アプリケーションの構造化データを解析するのに理想的な方法であるばかりでなく、Webページ、ソーシャル・メディア・サイト、電子メール交換、検索索引、クリックストリーム、機器センサー、ビデオ・カメラなどからの非構造化情報を解析することもできます。Hadoopでは、サーバーとス

トレージ機器を追加するだけで、簡単に規模を拡大して能力を増強できます。また、その分散型という特性およびパラレル処理アーキテクチャによって、高可用性インフラストラクチャを実現しています。Cutting氏は、次のように説明しています。

「Hadoopは、汎用コンピュータを使用して分散システムを構築しているため耐障害性があり、1つのノードですべてが失われた場合でも継続して動作します。何らかの特殊なハードウェアを購入せずに毎月100億のWebページをクロールする必要がある場合は、膨大な数のコンピュータを並列で動作させる必要があります。ここで話しているデータ量は、ハード・ドライブのアレイに格納できる容量や手頃な価格の1台のサーバーで妥当な時間内に処理できる量とは比較にならないほど某大なデータなのです」このレベルのパフォーマンスと信頼性を適正な価格で達成できることは、あらゆる業種の組織にとって魅力的です。クレジット・カード会社は、不正行為の予測を支援するためにHadoopを使用しています。エネルギー関連会社は、油田の探索にHadoopを使用しています。FacebookやLinkedInなどのソーシャル・メディア・サイトは、会員間のやりとりを擬人化するのにHadoopを使用しています。オンライン婚活サービスの会社は、数百万人の独身者から示された気が遠くなるような数の選択条件に基づいて完全に一致する相手を見つけるために、Hadoopを使用しています。また、多くの商業組織が、顧客の市場心理を把握するため

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

24

COMMUNITY

JAVA IN ACTION

JAVA TECH

ABOUT US

blog

にHadoopを使用しています。これらのアプリケーションはまったく異なるように見えますが、すべてのアプリケーションに共通のものが1つあります。それは膨大な量の情報の中からパターンを見つけることです。Hadoopでは、以前は高価なスーパーコンピュータへ任せていた計算タスクを、数千台におよぶ汎用のサーバーとストレージ・デバイスへと分散します。

研究用から本番環境用までオープンソース・コミュニティではLucene、Nutch、Avroプロジェクトの創設者としてよく知られているCutting氏は、情報検索と全文検索の専門家です。1988年にスタンフォード大学で言語学の学位を取得した後、Xeroxのパルアルト研究所(PARC)で職に就き、高性能検索エンジン、複数の革新的な検索パラダイム、高度な言語分析手法、および高品質のテキスト自動要約アルゴリズムを開発しました。PARCでの業績は、テキスト検索、情報検索、

走査検索、索引作成の各分野における6つの特許に結びつきました。1993年にPARCを去った後、Cutting氏

はApple、Excite、Yahoo!を経て、2000年に、Javaで記述された効率的なフル機能のテキスト検索エンジンを開発するLuceneプロジェクトでオープンソースの分野に進出しました。オープンソース・コミュニティにおける取り組みは、Cutting氏のベンチャー企業と協力する形で進められてきました。Yahoo!では、Cutting氏はミッションクリティカルなビジネス分析に使用する本番環境用のHadoopストレージと分析クラスタの構築/デプロイを担当するチームの主要メンバーでした。2009年には、企業の要望に合わせて特別に作成された100%オープンソースのHadoopディストリビューションであるCDHのリリースを支援するために、

Clouderaに加わりました。Cutting氏と他の数百人の開発者による努力のおかげで、Hadoopは大規模な本番環境における大量データの高速処理に適した選択肢として、今ではテクノロジーの世界全体で広く受け入れられています。Facebookは、データ量が30PBの最大のHadoopクラスタを所有していると主張しています。Yahoo!は、Search WebmapをHadoopアプリケーショ

ンとして、コア数が10,000を超えるLinuxクラスタ上で稼働させています。また、Google Joost、Microsoft、Netflix、Twitter、New York Timesも、大規模な計算タスクの処理をHadoopに依存しています。

オープンなコラボレーションHadoopは、元はGoog leのMapReduceとGoogle File Systemの研究論文から派生した

左:午後の会議に 備えて昼食を取りながら仕事をするCutting 氏。右: 社内を忙しく 移動するCutting氏。

グループでの 取り組みHadoopは、1つの団体によって管理されているわけではなく、さまざまな団体の共同作業によって管理されています。

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

25

COMMUNITY

JAVA IN ACTION

JAVA TECH

ABOUT US

blog

もので、波瀾万丈な歴史を歩んできました。その歴史は、今日の市販製品とオープンソース製品間の利害の対立をよく表しています。Cutting氏は、次のように回想しています。

「私は、Nutchと呼ばれるプロジェクトの小さなチームと協力して、Webクローラとインデクサを作成していました。これらはGoogleやBingと似ていますが、オープンソース・プロジェクトとして実施しました。Googleが分散ファイル・システムとその上で動作するMapReduceコンピューティング・レイヤーについての研究論文を公開したときに、それが私たちの必要としていたものであることが分かりました。つまり、プログラムの作成と操作が決して難しくはないマシン群に、ストレージと計算処理を分散させる体系的な方法が、それだったのです」Cutting氏は、これらのメソッドをオープ

ンソースとしてJavaで書き直し、Nutchプロジェクトに含めることを決定しました。Yahoo!がファイル・システムの分散部分に興味を示したときに、Cutting氏は、Nutchからこれらのメソッドを分離して名前をHadoopに変更し、別のベンチャー事業としてHadoopの開発を開始しました。 現在、多くの組織がHadoopエコシステム

に貢献しています。この多様性がある世界規模のコミュニティには、独立系開発会社、請負業者、ベンチャー企業、政府機関が参加しています。Yahoo!は、プロジェクトにもっとも貢献している企業であり、その業務においてHadoopを幅広く使い続けています。Cutting氏は、次のように説明しています。

「Hadoopは、1つの団体によって管理されているわけではなく、これらの多種多様な団体のすべてが協力することによって管理されています。ソフトウェアに関する決定は、全会一致を原

則としています。何かを一方的に行うことはできません」Hadoopエコシステムについて説明するために、Cutting氏はよくHadoopをLinuxと比較します。「Linuxは、単なるカーネルを超えた存在です。Linux上に構築されるプログラミング・スタイルと対話形式のすべてがそうであるように、開発者がHadoopエコシステム内で作成するアプリケーションは、セキュリティなどのもっとも重要な調整機能を共有することになります」

JAVAの利点Cutting氏によると、分散ソフトウェア・プラットフォームの開発は、1台のマシンだけで動作するソフトウェアの開発と比べて何倍も手の込んだものになります。しかし幸いなことに、Javaによって、多くのレベルで工程が簡素化されます。Cutting氏は、次のように説明しています。

「リモートで何かとやり取りをする各ポイントでは、何が起こるか分かりません。遅延、タイミングに関する数多くの未知の問題、および障害が発生する可能性、つまり、予想しなかったところでエラーが突然起きることがあります。システムの分散化が進むほど、その傾向は強くなります」分散システムのデバッグは、単一のコン

ピュータ上でプログラムを開発する場合よりもはるかに困難であるため、基板の部分に共通のOSレイヤーを確立することは理にかなっています。Javaは、簡単なデバッグと優れたパフォーマンスの最適な組合せを提供します。Cutting氏は、次のように述べています。

「型安全性とガベージ・コレクションは、Javaによる新システムの開発をはるかに容易にします。メモリ・リークを心配する必要はありません。また、Javaプログラムは、破滅的なクラッ

シュが比較的少ない傾向にあります。さらに、多くのことをコンパイル時に確認できます。プログラムが実行時に失敗しても、Javaであれば、CまたはC++よりも簡単にデバッグができます」

電子小売業 ■ 抱き合わせ販売用推奨エンジン ■ 広告のターゲティング、分析、予測、最適化 ■ 事象解析(目標とする結果を得るために必要な一連の手順を特定)金融サービス

■ コンプライアンスと法規制に関するレポートの作成 ■ リスクの分析と管理 ■ 不正検出とセキュリティ分析医療とライフサイエンス

■ 患者治療の質とプログラムの分析 ■ サプライ・チェーン管理 ■ 新薬の発見および開発の分析小売 /消費財

■ 販売計画とマーケット・バスケット分析 ■ キャンペーン管理とカスタマ・ロイヤルティ・プログラム ■ サプライ・チェーンの管理と分析通信

■ 顧客離れの防止 ■ 呼詳細情報(CDR)分析 ■ ネットワークのパフォーマンスと最適化政府機関

■ サイバー・セキュリティ ■ コンプライアンスおよび法規制に関する分析 ■ エネルギー消費量と二酸化炭素排出量の管理

Hadoopの産業用途

ORACLE.COM/JAVAMAGAZINE NOVEMBER/DECEMBER 2012

26

COMMUNITY

JAVA IN ACTION

JAVA TECH

ABOUT US

blog

Cutting氏が高く評価しているJavaライブラリ、ユーティリティ、およびツールの機能豊富なエコシステムは、Javaアプリケーションをどのように開発、共有、維持するかの選択肢を開発者に提供します。Cutting氏は、次のように述べています。「オープンソース・コミュニティでは、私たちはツールの大規模なライブラリを持っています。Java開発者が利用できるライブラリは、私がこれまで見てきたどの言語よりも内容が充実しています」最終的に、Javaの幅広い普及および特有の移植性によって、さまざまなオペレーティング・システム(例:LinuxとWindowsの多くの64ビットおよび32ビット・バージョン)で区別なく実行できる標準プログラムを簡単に開発できるようになりました。この柔軟性は、Hadoop分散ファイル・システム(HDFS)

の作成に不可欠です。HDFSは、Hadoopフレームワーク向けにJavaで記述されたHadoopアプリケーションによって使用されるプライマリ・ストレージ・システムです。Cutting氏は次のように強調しています。「基本的に、Javaでいったん記述してしまえば、そのプログラムはどこででも実行できます。これによって、信頼できる結果を短期間で出すことが可能になります。それに加えて、Javaは、比較的簡単に習得できる言語でもあります。かなり制約があることも確かですが、それでも強力であることには変わりありません。Javaでは、ベスト・プラクティスを利用してより簡単にプログラムを作成できます。その理由は単純で、ソフトウェアの維持を非常に難しくするような手段があまりないからです。これは、大規模な共同プロジェクトで開発を行う

場合に役立ちます」

I対話型計算の未来Hadoopは、バッチ計算用のプラットフォームとして成長してきました。その成長の一部分は、Hadoopno基板となっているMapReduce計算メタファが持つ性質のおかげです。ほとんどのHadoopジョブには、入力ファイルの大規模なセットが含まれ、それによって出力ファイルの大規模なセットが生成されます。これらのジョブをキューイングしてバッチ・モードで実行すれば、組織は、膨大な量のデータを処理できます。ただし、Cutting氏は、将来的にHadoopは進化して、エコシステムに追加されるさまざまな新しいクエリ・エンジンに

基づいて対話型計算と増分更新をサポートするようになると予測しています。Cutting氏は、次のように説明しています。

「現在は、単純なクエリを行って待機していると、結果が得られるようになっています。私は、このプラットフォームがよりいっそう多目的に使用されるようになると考えています。Hadoopは、バッチ計算に基づいたものでもなく、また単純なキー/バリュー・ストアでもない、新種のアプリケーションをサポートするようになるでしょう。つまり、複雑な表形式のデータに対するかなり複雑なクエリを、従来のソリューションよりもはるかにスケーラブルな方法で送信できるようになると思います」製造会社が工場の作業現場にあるセンサーからのデータを監視する場合、広告主が対象顧客を絞り込むために位置情報データを詳しく調査する場合、または”電子小売業”が顧客層の分類を改善するためにWebログ・ファイルを調査する場合のいずれでも、Hadoopがそのソリューションとなります。 </article>

David Baum。カリフォルニア州サンタバーバラを拠点とし、革新的なビジネス、最新テクノロジー、魅力的なライフスタイルについて執筆活動中。

カリフォルニア州パロアルトにあるCloudera 社のロビーで、休憩中に 電子メールをチェック するCutting 氏。