このページの本文へ

キャリア・ピックアップ 第49回

楽天×まつもとゆきひろで世界はどう変わる? 中編

2008年06月20日 04時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

fairyの出発点はGoogleの「MapReduce」技術

―――次に、fairyについてはどのような状況なのですか。

森:fairyには議論しなければならないことがたくさんあります。かなり大変です。私たちとしては、統計処理やクラスタ分析(データマイニングの手法のひとつ)など典型的な問題を直感的に分かりやすく記述しながら分散していく、その記述方法を整理している段階です。

まつもとゆきひろ氏

プログラミング言語「Ruby」開発者まつもとゆきひろ氏(43歳)
(株)ネットワーク応用通信研究所のフェローとして勤務し、楽天技術研究所のフェローも兼任する

まつもと:fairyの出発点には、Googleが提案した「MapReduce」があります。これはGoogleが2003年に提示し、実際に内部でも使っている技術です。Mapとは、データの並びを処理して、それを別のものに置き換えていく(単純化していく)ことで、ReduceとはMapしたものを集約していくことです。

―――もう少し具体的に教えてください。

まつもと:GoogleはMapReduceの使用例として、単語がそれぞれ何回登場するかを数える処理を挙げています。Googleには世界中から集めたWebページがり、そのデータ量は膨大なものになります。その中で単語がいくつあるかを数えるとき、複数のデータセンターに分散してある情報に対して、多数のノードを使って、並列に単語とその数のペアを作るように命じます。すると、多数の単語と数のペアができます。この段階では見つけた単語から順にペアを作っているので、同じ単語に対するペアが複数できています。

 次の段階で、作られた単語と数のペアを見て、同じ単語についてのペアならば数を合計し、ペアを集約していきます。例えば、「まつもと 1」というペアが3つあれば、「まつとも 3」にするわけです。これを繰り返していくと、最終的に全部のWebページを通じて各単語の登場回数が分かります。

 同様のことを一般的なプログラミングモデルだと、データを上から順に処理していくことになります。MapReduceは、割り当てられた範囲で単語数を出すという処理と、それらを集約する処理を定義することで、コントローラは大量のデータに対して、分散して処理させるように作業を割り当てることができます。

 楽天で行なっている分散処理の応用分野について調べたところ、統計処理や画像の変形、特徴量の抽出といったことが挙がりました。これらはMapReduceには、なじみにくい処理です。それで、もう少し違うモデルでできないか、ここ1年ぐらい議論し続けていました。最近ようやく、どうすればいいのかが見え始めてきたところです。

カテゴリートップへ

この連載の記事

アスキー・ビジネスセレクション

ASCII.jp ビジネスヘッドライン

ピックアップ