図●Hadoopを構成する主要ソフトウエア
図●Hadoopを構成する主要ソフトウエア
[画像のクリックで拡大表示]

 ヤフーが日本独自の検索関連サービスの開発で、オープンソースの分散処理ソフトである「Hadoop」の活用を進めている。Hadoopを使うことで、従来は6時間以上かかった処理がわずか5分半で済むようになった例もある。2009年秋には組織を整備し、適用範囲を全社に広げている。

 Hadoopは、米グーグルが開発した分散処理ソフト「Google File System(GFS)」と「MapReduce」を模したオープンソースソフトである()。GFSとMapReduceは、グーグルのクラウドを支える基盤技術。Hadoopを使うと、複数台の安価なPCサーバーを連携させ、数十テラ~数ペタバイトに及ぶデ ータを高速に処理できる。

 Hadoopを日本国内で最も積極的に利用している企業はヤフーだ。2008年ごろから部署単位でHadoopの導入を進め、Hadoopを使う事例が10件を超えるようになった()。

表●ヤフーにおけるHadoopの用途
表●ヤフーにおけるHadoopの用途
[画像のクリックで拡大表示]

 同社は09年秋に、全社的にHadoop導入を進めるための社内横断的な組織を設立。データ処理の全社的なプラットフォームとしてHadoopを活用することを検討している。

 Hadoopの主な用途は、データマイニングである。利用者によるコンテンツの閲覧履歴を分析し、お薦めの情報を推奨(レコメンド)する「レコメンドエンジン」などにHadoopを使用している。

 地図検索などのサービスを手掛ける地域サービス事業部は、1台のPCサーバー上でリレーショナルデータベース(RDB)ソフトのMySQLを稼働させて処理していたログの集計を、Hadoopを使って20台のサーバーによる分散処理に移行した。この結果、6時間6分35秒かかっていた処理時間を、わずか5分34秒にまで短縮できたという。

 Hadoopは基になったMapReduceと同様に、データを抽出(フィルタリング)するMap処理と、抽出したデータを集約して計算するReduce処理の二つで構成する。それぞれの処理を大量のサーバーに分散し並列して実行できるので、処理が高速化する。

 Hadoopでは、あるサーバーが故障しても、他のサーバーが失敗した処理を自動的に再実行する。複雑な分散処理プログラムをプログラマーが開発する必要はない。

 日本のヤフーも独自の分散処理基盤ソフトを開発していたが、サーバー間の通信処理や障害復旧処理などをプログラマーが独自に開発する必要があった。そのため、「サービスを開発するエンジニアがこの分散処理ソフトを使うケースはほとんどなかった」(R&D統括本部プラットフォーム開発本部検索開発部リーダーの角田直行氏)という。