MapReduce实例(一)

本文通过一个有趣的黑桃计数例子介绍了MapReduce的基本思想,然后详细阐述了一个具体的MapReduce实例,该实例用于计算输入文件中每个单词的出现次数。在设计思路上,Map阶段将单词作为key输出,Reduce阶段统计每个key的总数并输出结果。代码已上传到GitHub仓库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:http://chenxiaoqiong.com/articles/mapreduce1/

基本概念

Hadoop:的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
MapReduce:是处理大量半结构化数据集合的编程模型。最简单的 MapReduce应用程序至少包含 3 个部分:一个 Map 函数、一个 Reduce 函数和一个 main 函数。我的简单理解是map按照一定规则对输入做一系列的处理,reduce进行输出,输出前可能做一些操作,比如统计之类的。

一个有趣的例子


你想数出一摞牌中有多少张黑桃。直观方式是一张一张检查并且数出有多少张是黑桃?
MapReduce方法则是:
1. 给在座的所有玩家中分配这摞牌
2. 让每个玩家数自己手中的牌有几张是黑桃,然后把这个数目汇报给你
3. 你把所有玩家告诉你的数字加起来,得到最后的结论

实例需求

计算输入文件中的单词出现的次数。输入文件中的内容单词之间用空格隔开,要求输出文件中输出单词、空格、单词出现的次数。

输入文件

I am a pretty girl
I am a programmer I am so proud 

输出文件

I   3
a   2
am  3
girl    1
pretty  1
programmer  1
proud   1
so  1   

设计思路

根据map的规则,我们读取输入文件里的每一行,拿到每一个单词,输出[单词 1],reduce拿到[key,value-list]&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值