[最前線]

グーグルの巨大システムにみる大規模な並列処理機構の可能性

2011年1月12日(水)

HadoopのMapReduceによる大規模分散データ処理を検証する 世界36カ所以上にデータセンターを持ち、クラウドコンピューティングサービスを展開するグーグル。 サービスを支える巨大なクラスタシステムを構成するサーバーは、数十万台とも100万台とも言われる。 過去に例がない大規模な並列処理を実現するため、グーグルは「MapReduce」と呼ぶ仕組みを自社で開発。 この仕組みを用いたデータ処理基盤として、ベンダーとユーザーの双方が注目する「Hadoop」の可能性を検証する。 ※本記事はアイ・アイ・エム(IIM)発行の「IIMレポート」の記事に一部加筆・編集して掲載しています。

グーグルはクラスタシステムを活用するためのミドルウェアを自社開発している。分散型ファイルシステムを実現するGFS(Google File System)や分散型データベース機能を提供するBigTable、並列プログラムの実行を可能にするMapReduceについて、聞いたことがある読者も多いだろう。これらはクラスタシステムでの分散処理と並列処理を支えるだけでなく、高度な知識を持たないプログラマでもプログラミングできるようにするなど、革新的なアプローチを採用している。

障害に強いソフトウェアが安いハードウェアを役立つものに変える─。グーグルはこうした“基本姿勢”を採っている。例えば、3年に1度しか故障しないサーバーでも1000台稼働させると、計算上は毎日1台が故障する。この問題に対処するため、グーグルは耐故障性を高める数多くの機能を自社開発したミドルウェアに組み込んだ。以下では、そのうちの1つ、並列プログラムの実行機能であるMapReduceについて詳しくみていく。

MapReduceとは、膨大なデータを短時間で処理することを目的としたプログラミングモデルだ。一般に、1つのプログラムを複数システムで並列実行させるには、プログラマが並列処理を認識してプログラミングする必要がある。だが、MapReduceは並列処理に必要な機能をライブラリとして提供することで、並列処理の経験がないプログラマでもプログラムを開発できるようにしている。

並列処理の手法(1)
入力・処理・出力で機能分割

本題に入る前に、並列処理の基本的な仕組みについて整理する。

この記事の続きをお読みいただくには、
会員登録(無料)が必要です
登録済みの方はこちら

IT Leaders 雑誌版、電子版をご購読の方、会員登録済みの方は下記ボタンよりログインして続きをお読みください

初めての方はこちら

IT Leaders 会員になると
会員限定公開の記事を読むことができます
IT Leadersのメルマガを購読できます

【次ページ】
  • 1
  • 2
バックナンバー
最前線一覧へ
関連記事

グーグルの巨大システムにみる大規模な並列処理機構の可能性HadoopのMapReduceによる大規模分散データ処理を検証する 世界36カ所以上にデータセンターを持ち、クラウドコンピューティングサービスを展開するグーグル。 サービスを支える巨大なクラスタシステムを構成するサーバーは、数十万台とも100万台とも言われる。 過去に例がない大規模な並列処理を実現するため、グーグルは「MapReduce」と呼ぶ仕組みを自社で開発。 この仕組みを用いたデータ処理基盤として、ベンダーとユーザーの双方が注目する「Hadoop」の可能性を検証する。 ※本記事はアイ・アイ・エム(IIM)発行の「IIMレポート」の記事に一部加筆・編集して掲載しています。

PAGE TOP