mapReduce概念及用法

2021-07-11 22:21:48 字數 1115 閱讀 2228

mapreduce 隨著

"大資料

"概念而流行

.其實mapreduce

的概念非常簡單

,從功能上說

,相當於

rdbms

的group 操作

mapreduce的真正強項在哪?答:

在於分布式

,當資料非常大時,像

google,有n

多資料中心

,資料都不在地球的一端,用

group

力所不及.

group既然不支援分布式

,單台伺服器的運算能力必然是有限的

.而maprecuce

支援分布式

,支援大量的伺服器同時工作

,用蠻力來統計.

maprecuce

的工作過程:

map-->對映

reduce->歸約

map: 先是把屬於同乙個組的資料(相同的cat_id)

,對映到乙個陣列上

.cat_id=3   [23,2,6,7]

reduce: 把陣列

(同一組

)的資料

,進行運算

.用mapreduce

計算每個欄目的庫存總量

map函式

var map = function() 

var reduce = function(cat_id,numbers) 

db.goods.mapreduce(map,reduce,);//將map、reduce計算的結果儲存到res集合中

#用mapreduce

計算每個欄目下商品的平均**

var map = function() 

var reduce = function(cat_id,values) 

db.goods.mapreduce(map,reduce,);

array中有多個操作方法,可以使用js中的for進行迴圈列印

for ( var key in array )

mapreduce原理流程圖:

C 引用 概念及用法

一.概念 引用是變數的別名,對引用的操作與對變數的操作完全一樣。引用符號 與c語言中取位址符號一樣,含義不同。引用的方法 型別識別符號 引用名 變數名 例如 int a int ra a 定義引用ra,它是變數a的引用,即別名 二.引用例項 1.引用作為函式引數 void swap int p1,i...

volatile變數的概念及用法

volatile關鍵字是一種型別修飾符,用它宣告的型別變數表示可以被某些編譯器未知的因素更改,比如 作業系統 硬體或者其它執行緒等。遇到這個關鍵字宣告的變數,編譯器對訪問該變數的 就不再進行優化,從而可以提供對特殊位址的穩定訪問。int i 5 int a i int b i 編譯器發現兩次從i讀資...

C 11 shared ptr概念及用法

c 11模板庫 include shared ptrptr new t t 可以是 int char 類等各種型別gnu g 的標準庫中還沒有支援,需使用boost include每個 shared ptr 物件在內部指向兩個記憶體位置 ptr.use count 1 使用空引數建構函式構造 std...