My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
Overview  
SSS Mapreduce Overview
en , ja
Updated Feb 25, 2013 by tatsuhik...@gmail.com

概要

SSS Mapreduceは並列データ処理のための分散コンピューティングフレームワークです。 並列データ処理を行うための基本的な考え方はGoogle社によって提唱された分散コンピューティングモデルであるMapReduce、 そのオープンソース実装であるApache Hadoopを参考にしています。 SSS Mapreduceではデータストレージとして分散ファイルシステム(Google社による実装ではGFS、Apache HadoopではHDFS) の代わりに分散キーバリューストアを採用している点が大きな特徴です。

特徴

SSS Mapreduceの特徴を説明します。

データの読み込みをローカルで行う

SSS Mapreduceでは高速なデータ転送とットワーク通信の衝突回避のために、Map/Reduce処理ではそれぞれのノードでローカルにあるデータのみを処理します。

キーのハッシングとキーバリューストアによるデータのグルーピング

MapReduce計算モデルではReduceを実行する前に入力データをキー毎にグルーピングする必要があります。 SSS Mapreduceではこのグルーピングにキーのハッシングとキーバリューストアを利用します。 Map処理で生成したキーバリューペアをキーバリューストアに書き込む際に、キーのハッシュ値を使って書き込み先のノードを決定します。 そして、キーバリューストアに書き込まれたデータは、キーバリューストアによって自動的にグルーピングされます。 SSS Mapreduceではこれをそのまま利用してReduceを実行します。

柔軟なワークフロー

前述の通り、SSS MapreduceではMapとReduceの間でやり取りされるデータをキーのハッシュ値を使って分散させた上でキーバリューストアに格納します。 しかし、SSS MapreduceではMapとReduceの間でやり取りされるデータだけでなく、すべてのデータ(Mapの入力やReduceの出力結果など)を同じ方法でデータを保持します。 その結果、すべてのデータに対して、Map処理、Reduce処理の両方を実行することが可能になっています。 そのため、MapとReduceが1対1で対応している必要がなく、任意の個数のMapとReduceを組み合わせて柔軟なデータフローを作成することができます。

SSS Mapreduceの構成

SSS Mapreduceは以下の3つの要素から構成されます。

  • クライアント
  • ワーカーサーバー
  • ストレージサーバー

各計算ノードでは、ワーカーサーバー、ストレージサーバーが動作します。 そして、クライアントはMap処理とReduce処理の実行を管理する役割を担い、各ノード上のワーカーサーバーに対してMap/Reduceの実行を指示します。

ワーカーサーバーはJavaで記述されたプログラムです。 ストレージサーバーとしてはTokyoTyrantにバルク処理の高速化のためのパッチを適用したものを利用します。

利用方法

SSS Mapreduceではジョブの実行条件や処理内容を指定、ジョブの実行、ジョブの実行管理を行うためのJavaのAPIを提供しています。 ユーザはJavaのプログラムからAPIを呼び出して、ジョブの実行条件や処理内容を指定、ジョブの実行、ジョブの実行管理を行うことができます。

具体的なSSS MapreduceのAPIの利用方法についてはProgrammingGuideを参照してください。

Powered by Google Project Hosting