今回はいよいよ、MapReduceを使ってデータ処理を実践してみます。その前にまず、MapReduceの仕組みを大まかに理解しておきましょう。

 Hadoopの特徴の一つは、「並列処理可能な小さなタスクに分割し、空いたCPUに順次割り当てる」という点です。どんなに台数が多くても、全体の処理を独立した小さなタスクに分割して並行処理することで、CPUなどの資源を効率的に使うことができるというものです。この仕組みを実現しているのが、MapReduceです。

図1●MapReduceが扱うkey-valueとkey-valuesデータモデル
[画像のクリックで拡大表示]

 MapReduceはすべてのデータを非常にシンプルな形で表現します。大きく分けて、「key-valueペア」と「keyvaluesペア」の2つのモデルがあります(図1)。後者のvalueに「s」が付いているところが違います。

 key-valueペアはその名の通り、 1個の「key」と1個の「value」がペアになっているデータです。例えば、 keyが「東京タワー」でvalueが「放送塔」です。keyが「バナナ」で、valueが「2(個)」もそうです。

 key-valuesペアは、1個の「key」に、複数の「value」が対応付けられたデータです。 例えば、keyが「東京タワー」で、valuesが「放送塔, 観光名所, 映画」のような場合です。キーが「3年A組」で、valuesが「伊藤さん、岩国さん、上野さん、片山さん、・・・・」のようなデータもあります。

 このように、keyとvalueには様々なデータ型が使えます。文字列だけでなく、整数や浮動小数点、XML要素などを扱えます。

この先は会員の登録が必要です。有料会員(月額プラン)は申し込み初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら