mapReduce概念及用法
2016-05-19 23:19
288 查看
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() {
emit(this.cat_id,this.goods_number);
}
var reduce = function(cat_id,numbers) { //这两个形参对应map函数中的this.cat_id,this.goods_number
return Array.sum(numbers);
}
db.goods.mapReduce(map,reduce,{out:'res'});//将map、reduce计算的结果保存到res集合中
#用mapReduce计算每个栏目下商品的平均价格
var map = function() {
emit(this.cat_id,this.shop_price);
}
var reduce = function(cat_id,values) {
return Array.avg(values);
}
db.goods.mapReduce(map,reduce,{out:'res'});
Array中有多个操作方法,可以使用js中的for进行循环打印
for ( var key in Array ) {
print(key)
}
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() {
emit(this.cat_id,this.goods_number);
}
var reduce = function(cat_id,numbers) { //这两个形参对应map函数中的this.cat_id,this.goods_number
return Array.sum(numbers);
}
db.goods.mapReduce(map,reduce,{out:'res'});//将map、reduce计算的结果保存到res集合中
#用mapReduce计算每个栏目下商品的平均价格
var map = function() {
emit(this.cat_id,this.shop_price);
}
var reduce = function(cat_id,values) {
return Array.avg(values);
}
db.goods.mapReduce(map,reduce,{out:'res'});
Array中有多个操作方法,可以使用js中的for进行循环打印
for ( var key in Array ) {
print(key)
}
mapReduce原理流程图:
相关文章推荐
- ACM: 简单最小生成树 图论题 poj 1…
- ACM: spfa+dfs 图论题 poj 2679
- 图论: 最大流
- ACM: 最大流 图论题 poj 1797
- 线程的常用方法
- ACM: 差分约束 图论题 poj 2983 sp…
- ACM: 二分图最大匹配 hdu 2063
- 数据
- ACM: 二分法 数论题 poj 1905
- ZOJ的轻松ACMER语录.. 狗一样的学…
- ACM: spfa求解 图论题 (对差分约束…
- ACM: 最小费用用最大流 图论题 poj…
- ACM: K次最小费用最大流 图论题 po…
- ACM: 哈希暴力求解 哈希题 poj 184…
- ACM: 最小费用最大流 图论题 poj 2…
- 理解并解决GBK转UTF-8奇数中文乱码(转)
- HDU 2098 分拆素数和
- ACM: hash题 poj 2503
- ACM: 网络流 图论 poj 1459
- 关于JSP的思考