专业只做数据库实训和认证的品牌机构

微信公众号新浪微博
免费咨询电话:400-0909-964
当前位置: 网站首页 > Hadoop > Hadoop课程 > Hadoop认证课程:Map设计和Reduce设计

Hadoop认证课程:Map设计和Reduce设计

文章来源: 更新时间:2016/7/13 16:28:59

在线老师点击咨询:

最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!

我要咨询

Hadoop认证课程:Map设计和Reduce设计,单词词频统计WordCount是Hadoop自带的一个简单的应用,它可以计算出指定文本集中每一个单词出现的次数。要利用MapReduce编程模型去实现一个词频统计的并行程序,对于开发者来讲需要做两件事:第一是如何将顺序执行的词频统计算法流程转化为MapReduce的处理模式,具体就是如何设计Map和Reduce的输入和输出的键值对,以及Map和Reduce分别如何处理,而具体的Map和Reduce数据流控制是由Hadoop来做的,开发者无须干涉;第二就是根据MapReduce的算法设计伪代码编程实现Hadoop的MapReduce函数接口。下面分别设计Map和Reduce函数。

在设计Map时,输入的是文档,默认Map函数的输入key是行偏移,value是一行本身的内容,当然可以指定key为文档id,那么在Map中就可以这样处理:

Map(文档id,文档)(词,计数)

需要将文档内容处理为<词,计数>键值对,这里的词是分词。为了简化我们只考虑英文状态,因此就不涉及中文分词了,计数值可以直接指定为1,空格切分后直接输出<词,1>键值对。

Map处理算法的伪代码如下:

Class Mapper

 Method Map(docid a,doc d)

  For each term t属于 d do

      Emit(term t, count 1)

在Reduce设计中,输入就是Map的输出,也就是Reduce输入的键值对就是Map输出的键值对,同时还需要注意在Map处理完之后是会按照key进行排序的,因此在Reduce处理之前Map的结果就已经是有序的了,这样Map结果中相同的key的value都全部在一起了,那么Reduce函数就可以这样设计:

Reduce(词,计数[……])(词,计数求和)

在Reduce中需要对相同key的value值求和,这样就可以得到每一个单词的频率。Reduce处理算法的伪代码如下:

Class Reducer

 Method Reduce(term t,count[c1,c2,...])

  Sum =0

  For each count c 属于 count[c1,c2,...] do

      sum=sum+c

      Emit(term t, count sum)

Reduce算法的思想很简单,就是对于每一个单词term,将其所有值相加,然后输出。

Reduce就是一个归约求和的过程,用户不需要关心Map之后的排序,以及Map的输出被shuffle映射到哪些Reduce作为输入,这些都是用Hadoop框架自动完成的。

本文地址:http://www.cuug.com.cn/hadoop/kecheng/12464824153.html 转载请注明!


在线预约 抢先报名 获取课程排期

Oracle培训机构

金牌讲师<>

冉乃纲-老师CUUG金牌讲师
冉老师 CUUG金牌讲师 Oracle及RedHat高级讲师、Unix/Linux 资深专家...[详细了解老师]

免费咨询上课流程 客服在线中

陈卫星-老师CUUG金牌讲师
陈老师 CUUG金牌讲师 精通Oracle管理、备份恢复、性能优化 11年Ora...[详细了解老师]

免费咨询上课流程 客服在线中

选学校如何选择适合自己的学校

CUUG -CHINA UNIX USER GROUP,是国际UNIX组织UNIFORUM的中国代表,是国内悠久的专业UNIX培训机构,被誉为中国UNIX 的摇篮。多年来,以提高教学质量为本,强调素质教育,积极引进、消化国外的新技术,有效的结合中国....[详情]

一站式服务(从入学到就业一帮到底)

入学

学习

就业

实操

食宿
地址:北京市海淀区田村山南路35号院17号楼
课程咨询:010-59426307 010-59426319 400-0909-964
企业服务:137 1818 8639(陈经理)
部分信息来源于网络,如有错误请联系指正!
版权所有@北京神脑资讯技术有限公司 (CUUG,中国UNIX用户协会) Copyright 2016 ALL Rights Reserved 京ICP备11008061号-1