分享

Hadoop MapReduce编程个人总结

bob007 2015-6-9 21:07:46 发表于 心得体会 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 15044
首先要实现mapreduce就要重写两个函数,一个是map 另一个是reduce
map(key ,value) map函数有两个参数,一个是key,一个是value
如果你的输入类型是TextInputFormat(默认),那么,你的map函数的输入将会是:

key : 文件的偏移量(就是values在该文件的位置)
value: 这是一行字符串(hadoop将文件每一行作为输入)
hadoop会给每一行都执行map函数,map函数要做的,就是要将这一行,根据你要实现的功能(比如wordcount)将它拆成一个个(key,value)

(wordcount的拆法就是,key=单词,value=1)

接着,hadoop会将所有的(key,value)汇总,它会将所有key相同的项合并在一起,而value就是一个list,从而形成了一个新的(key,values),然后将这个发送给reduce函数.

reduce(key,value) reduce函数同样有两个参数,一个是key,一个是value
通常这个value就是一个list,
reduce函数要实现的功能就是,针对其中一组(key,value),将其按照你要实现的功能,进行运算

(wordcount的做法 ,那么你的key将是一个单词,而value这个list的每一项都是1,只要计算一下有多少个1,那么就知道这个单词的频数是多少了.)

已有(1)人评论

跳转到指定楼层
levycui 发表于 2015-6-10 09:29:54
谢谢分享,支持原创分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条