世界36カ所以上にデータセンターを持ち、クラウドコンピューティングサービスを展開するグーグル。 サービスを支える巨大なクラスタシステムを構成するサーバーは、数十万台とも100万台とも言われる。 過去に例がない大規模な並列処理を実現するため、グーグルは「MapReduce」と呼ぶ仕組みを自社で開発。 この仕組みを用いたデータ処理基盤として、ベンダーとユーザーの双方が注目する「Hadoop」の可能性を検証する。
※本記事はアイ・アイ・エム(IIM)発行の「IIMレポート」の記事に一部加筆・編集して掲載しています。
グーグルはクラスタシステムを活用するためのミドルウェアを自社開発している。分散型ファイルシステムを実現するGFS(Google File System)や分散型データベース機能を提供するBigTable、並列プログラムの実行を可能にするMapReduceについて、聞いたことがある読者も多いだろう。これらはクラスタシステムでの分散処理と並列処理を支えるだけでなく、高度な知識を持たないプログラマでもプログラミングできるようにするなど、革新的なアプローチを採用している。
障害に強いソフトウェアが安いハードウェアを役立つものに変える─。グーグルはこうした“基本姿勢”を採っている。例えば、3年に1度しか故障しないサーバーでも1000台稼働させると、計算上は毎日1台が故障する。この問題に対処するため、グーグルは耐故障性を高める数多くの機能を自社開発したミドルウェアに組み込んだ。以下では、そのうちの1つ、並列プログラムの実行機能であるMapReduceについて詳しくみていく。
MapReduceとは、膨大なデータを短時間で処理することを目的としたプログラミングモデルだ。一般に、1つのプログラムを複数システムで並列実行させるには、プログラマが並列処理を認識してプログラミングする必要がある。だが、MapReduceは並列処理に必要な機能をライブラリとして提供することで、並列処理の経験がないプログラマでもプログラムを開発できるようにしている。
並列処理の手法(1)
入力・処理・出力で機能分割
本題に入る前に、並列処理の基本的な仕組みについて整理する。
会員登録(無料)が必要です
- 1
- 2
- 次へ >
- シリコンバレーに見る、テストツールの最新動向(2013/03/05)
- 【ERPの導入状況を調査】 ERP導入企業は34.8% 経営改革や業績管理に活用する動きも(2013/02/07)
- ツールの効果的活用で機能品質高め IT投資バランスの最適化を目指す(2013/01/29)
- IaaSを利用する際、これだけは押さえておきたいセキュリティのツボ(2012/10/18)
- これからIT部門が育てるべき人材像とは(2012/08/24)