博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解MapReduce
阅读量:6697 次
发布时间:2019-06-25

本文共 1313 字,大约阅读时间需要 4 分钟。

hot3.png

理解MapReduce Hadoop的MapReduce过程具有如下形式:

1) map: (K1, V1) => list(K2, V2)      2) reduce: (K2, list(V2)) => list(K3, V3)

我用一个简单的例子说明它表示的含义:

假设待分析的数据文件是一个用户名和密码的表,即"用户名,密码"格式:

========= input.dat=========

zhang,123456

wang,qazxsw

liu,123456

meng,xxx123

hunan,qazxsw

chin,qazxsw

feifei,1008xyz

... ...

==========================

那么我们要求统计出密码使用的次数大于1次的,即最终可以得到下面的结果:

123456=2

qazxsw=3

用MapReduce可以这样做:

第1步:Map protected void map(LongWritable key, Text value, Context context);

Map的输入(K1, V1)默认是(文件行号,文件行),即map函数每次得到的输入都是下面的形式:

(key=>K1, value=>V1)

第1次:(0, "zhang,123456")

第2次:(1, "wang,qazxsw")

第3次:(2, "liu,123456")

第4次:(3, "meng,xxx123")

...

我们需要在map函数的value参数V1中,提取出密码作为输出的K2=>key,而输出的value是1(次数),

表示一个用户使用了这个密码=>K2。

map运行完后得到了下面的结果:list(K2, V2),即:

K2 (V2)

123456(1)

qazxsw(1)

123456(1)

xxx123(1)

qazxsw(1)

qazxsw(1)

1008xyz(1)

这个输出被系统自动归并为K2=>list(V2),即: 123456=>(1,1)

qazxsw=>(1,1,1)

xxx123=>(1)

1008xyz=>(1) 这个(K2, list(V2)) 接着作为reduce的输入。

第2步:Reduce protected void reduce(Text key, Iterable<IntWritable> values, Context context);

reduce函数的输入既然是key=K2, value=list(V2),那么我们就可以把每个K2下的list(v2)的元素相加,得到下面的结果:

123456=>(2)

qazxsw=>(3)

xxx123=>(1)

1008xyz=>(1) 我们只保留次数大于1的,所以最后的reduce输出为:

123456=>(2)

qazxsw=>(3)

这个就是:list(K3, V3)。这里K3与K2类型一致,V3与V2类型一致。

以上就是Map Reduce的全过程。

转载于:https://my.oschina.net/u/203607/blog/167072

你可能感兴趣的文章
“docker-app”实用工具分享,大大提高 Compose 文件复用率
查看>>
位置参数及操作符号
查看>>
伪共享和缓存行填充,Java并发编程还能这么优化!
查看>>
数据库备份DBS商业化发布
查看>>
聊聊3种最常见的响应式设计问题
查看>>
.NET面试题解析(02)-拆箱与装箱
查看>>
剖析管理所有大数据组件的可视化利器:Hue
查看>>
MySQL运维系列 之 如何监控大事务
查看>>
自断前程,未来80%IT工作将实现自动化
查看>>
Spring Boot入门(9)网页版计算器
查看>>
Hibernate之加载策略(延迟加载与即时加载)和抓取策略(fetch)
查看>>
Java 12 将于3月19日发布,8 个最终 JEP 一览
查看>>
对于最近爆火的区块链,投资人怎么看? | 聚焦
查看>>
Redis基于客户端分片的集群案例(待实践)
查看>>
【前端工程师手册】JavaScript作用域拾遗
查看>>
东网科技荣膺2016中国大数据最佳实践奖
查看>>
NVIDIA助力SiemensPLMSoftware“工业4.0创新实验室”,携手推进中国制造创新之路
查看>>
高性能、高可靠分布式文件系统 go-fastdfs v1.2.0 发布
查看>>
VR全景看年评!PConline年度评测盛典等你来体验
查看>>
为旗下硬件产品服务,LG推出基于SLAM技术的3D摄像头
查看>>