t*2
2 楼
【 以下文字转载自 SanFrancisco 讨论区 】
发信人: tianyagirl2 (呢喃), 信区: SanFrancisco
标 题: 请教:Map reduce到底是什么啊
发信站: BBS 未名空间站 (Mon May 26 23:28:01 2008)
我是CS的小本,经常听到有人说Google的map reduce,网上也找不到。请问这到底是什
么样的算法,是Google发明的么?谢谢。
发信人: tianyagirl2 (呢喃), 信区: SanFrancisco
标 题: 请教:Map reduce到底是什么啊
发信站: BBS 未名空间站 (Mon May 26 23:28:01 2008)
我是CS的小本,经常听到有人说Google的map reduce,网上也找不到。请问这到底是什
么样的算法,是Google发明的么?谢谢。
b*6
3 楼
reduce the size.
j*g
4 楼
我也刚刚学的,不对的地方大家指正。
首先,最简单地说MapReduce是一种编程模式。举个例子,程序员有两个表分别有100条
记录要对他们进行join查询。最简单的办法是使用数据库。现在假设我们不想用数据库
,那么程序员把程序编写成这样
myMap.java
1.读入表文件A,B
2.做一些ETL工作,比如去除你不需要的列
3.将A和B里面的join key找出来,假设叫做key
4.将A和B所有记录按照(key,value)的格式发出去。
(key,value one from A)
(key,value two from A)
.......................
(key,value n from A)
(key,value one from B)
(key,value two from B)
.......................
(key,value m from B)
一般是发送到标准输出。
紧接着,运行时环境就处理你的(key,value)pair。把同样key的发到一个机器上(应该
是reduce进程,现在假设一台
首先,最简单地说MapReduce是一种编程模式。举个例子,程序员有两个表分别有100条
记录要对他们进行join查询。最简单的办法是使用数据库。现在假设我们不想用数据库
,那么程序员把程序编写成这样
myMap.java
1.读入表文件A,B
2.做一些ETL工作,比如去除你不需要的列
3.将A和B里面的join key找出来,假设叫做key
4.将A和B所有记录按照(key,value)的格式发出去。
(key,value one from A)
(key,value two from A)
.......................
(key,value n from A)
(key,value one from B)
(key,value two from B)
.......................
(key,value m from B)
一般是发送到标准输出。
紧接着,运行时环境就处理你的(key,value)pair。把同样key的发到一个机器上(应该
是reduce进程,现在假设一台
b*n
5 楼
写得相当详细. 楼主什么时候再写写Map Reduce对云计算的Implication?
m*r
6 楼
map reduce是两种常见的高阶函数(high-order function),就是说它们接受至少一
个参数为函数。map 就是把一个函数应用到一个数据集里所有的元素上的高阶函数。
reduce是另外一个高阶函数,可以把一个集合的数简化(reduce)成一个值,这个
reduce一般接受一个associative 函数,譬如加法函数。
这两个函数联合起来用就可以实现很多计算。google用它是因为这个模式很适合‘并行
’的,’冗余‘的,’分布式‘的做web data有关的数据计算,譬如查找啥的。一般程
序员不需要关心并行啥的细节,只要写好那个给map、reduce的函数就好了。
除了这两个高阶函数外,还有很多别的常用函数,譬如scan。
这种东西也叫algorithm skeleton, algorithm template啥的。函数式编程语言里可
以很方便的做各种algorithm skeleton。所有的函数语言里,都包含有map、reduce这
两个最基本的高阶函数。
【在 t*********2 的大作中提到】
: 【 以下文字转载自 SanFrancisco 讨论区 】
: 发信人: tianyagirl2 (呢喃), 信区: SanFrancisco
: 标 题: 请教:Map reduce到底是什么啊
: 发信站: BBS 未名空间站 (Mon May 26 23:28:01 2008)
: 我是CS的小本,经常听到有人说Google的map reduce,网上也找不到。请问这到底是什
: 么样的算法,是Google发明的么?谢谢。
个参数为函数。map 就是把一个函数应用到一个数据集里所有的元素上的高阶函数。
reduce是另外一个高阶函数,可以把一个集合的数简化(reduce)成一个值,这个
reduce一般接受一个associative 函数,譬如加法函数。
这两个函数联合起来用就可以实现很多计算。google用它是因为这个模式很适合‘并行
’的,’冗余‘的,’分布式‘的做web data有关的数据计算,譬如查找啥的。一般程
序员不需要关心并行啥的细节,只要写好那个给map、reduce的函数就好了。
除了这两个高阶函数外,还有很多别的常用函数,譬如scan。
这种东西也叫algorithm skeleton, algorithm template啥的。函数式编程语言里可
以很方便的做各种algorithm skeleton。所有的函数语言里,都包含有map、reduce这
两个最基本的高阶函数。
【在 t*********2 的大作中提到】
: 【 以下文字转载自 SanFrancisco 讨论区 】
: 发信人: tianyagirl2 (呢喃), 信区: SanFrancisco
: 标 题: 请教:Map reduce到底是什么啊
: 发信站: BBS 未名空间站 (Mon May 26 23:28:01 2008)
: 我是CS的小本,经常听到有人说Google的map reduce,网上也找不到。请问这到底是什
: 么样的算法,是Google发明的么?谢谢。
d*n
7 楼
t*2
8 楼
我用了pig,觉得不是很方便啊。pig是面向oo得,但是她产生的map/reduce不一定是最
优化的吧?怎么才能看到pig自己产生的map/recude code呢?我想和自己写的作个比较。
【在 j*******g 的大作中提到】
: 我也刚刚学的,不对的地方大家指正。
: 首先,最简单地说MapReduce是一种编程模式。举个例子,程序员有两个表分别有100条
: 记录要对他们进行join查询。最简单的办法是使用数据库。现在假设我们不想用数据库
: ,那么程序员把程序编写成这样
: myMap.java
: 1.读入表文件A,B
: 2.做一些ETL工作,比如去除你不需要的列
: 3.将A和B里面的join key找出来,假设叫做key
: 4.将A和B所有记录按照(key,value)的格式发出去。
: (key,value one from A)
优化的吧?怎么才能看到pig自己产生的map/recude code呢?我想和自己写的作个比较。
【在 j*******g 的大作中提到】
: 我也刚刚学的,不对的地方大家指正。
: 首先,最简单地说MapReduce是一种编程模式。举个例子,程序员有两个表分别有100条
: 记录要对他们进行join查询。最简单的办法是使用数据库。现在假设我们不想用数据库
: ,那么程序员把程序编写成这样
: myMap.java
: 1.读入表文件A,B
: 2.做一些ETL工作,比如去除你不需要的列
: 3.将A和B里面的join key找出来,假设叫做key
: 4.将A和B所有记录按照(key,value)的格式发出去。
: (key,value one from A)
相关阅读
请问color imaging这个方向怎样?Elsevier的Theoretical Computer Science怎么样?专业问题请教请问计算机系的同胞们有趣的“简单”问题 (转载)请教 LOG ANALYSIS 工具有人在Tampa参加SC06吗?请问有人了解CMU的交互设计专业么?一个简单的算法问题? (转载)bmp 文件格式问题问个问题Interconnection network 还有什么搞头?有人去印度参加 IJCAI-2007 吗?Biology at Famous U VS Computer at so so U职位: 高级软件工程师电影求助!!问个概率问题从ACM会议看中国大陆计算机科学与国外的差距 (ZZ) 李开复批中国教育:老师教的专业自己都没读过 时事述评ACM的会员电子书籍好不好?