大数据学习8

mapreduce优点:海量数据离线处理&易开法&容易运行

mapreduce缺点:无法实现流式计算

分布式计算小案例:统计海量数据文件中的词频

流程分析:

1.首先将输入的文件拆分成多个文件快(spliting)

2.每台机器统计每个文件快中的单词次数,根据空格等正则来拆分单词(mapping)

3.每个节点将会吧相同的单词发送到特定的某台机器上,这样每个机器就会知道特定的单词的数量(shuffing)

4.汇总单词数量(reducing)

5返回结果

mapReduce流程:

扫描二维码关注公众号,回复: 4719534 查看本文章

input <k1,v1> -> map -> <k2,v2> ->combine -> <k2,v2..> -> reduce -><k3,v3>

解释:

输入的文件hadoop会按照文件中字符的偏移量来作为k1,v1就表示该偏移量后面的内容

经过mapping过程后,每个节点会得到相应字符的统计数这时k2表示单词,v2表示个数

k3,v3与k2,v2相同

下图为流程图:

mr核心概念:

blocksize与split之间的关系:

一个文件会被拆分成多个block,这是hdfs的最小存储单元

每个block会被拆分成多个split,这是mr的最小计算单元。此时的split就对应为上图的k1,v1

每个split会交给一个mapperTask来处理,也就是map过程

之后就是shuffle过程和reduce过程

mapreduce2.x架构图

猜你喜欢

转载自blog.csdn.net/qq_32182461/article/details/85447506
今日推荐