Comments
Description
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