MapReduceは強力なバッチ処理を行う分散システムですが,
現在はさまざまなシステムがWebサービスとして展開されており,
そして,
- サーバにぶら下がる多くのクライアントPC
- ↓
- サーバから見た場合,
多くのクライアントPC=計算機リソース - ↓
- NameNodeにぶら下がるDataNode群
という関係性に置き換えられないだろうか? という単純な発想の元,
システム概要
HadoopとJadoopの違いは図1のようになります。
Hadoopの場合はデータの保存時にデータブロックごとにDataNodeに分割保存されます。MapReduce指示を受け,
Jadoopの場合はデータの管理は全てサーバサイドで行っており,
Map処理について
サーバサイドではMapしたいデータについてPCからのリクエストに応じて分割ダウンロードさせます。データ形式はJSONを使用し,
PCではmap処理用のJavaScript関数により,
Mapしたいデータについて全て処理が終わったモノがMapの結果として保存され,
Reduce処理について
Reduceも基本的にMapと同じですが,
これで生成されたReduceしたいデータはMapと同じようにPCからの要求に応じて分割してダウンロードされます。このときのデータ形式はJSONですが,
PCではreduce処理用のJavaScriptの関数を通してキーとバリューのリストを処理し,