大数据之MapReduce

MapReduce

   MapReduce框架分两个阶段
   MapReduce原语
   MapReduce运行平台YARN
   MapReduce运行官方的wordcount小程序

MapReduce框架分两个阶段:
map阶段: 程序MapTask
reduce阶段: 程序ReduceTask

Map阶段:

对maptask读到的一行数据如何处理

Reduce阶段:

对reducetask拿到的一组相同key的kv数据如何处理

在这里插入图片描述
从宏观角度可以看出:
在这里插入图片描述
split(切片)
在这里插入图片描述

在这里插入图片描述

MpaReduce原语:

"相同"的key为一组,调用一次reduce方法, 方法内迭代这一组进行计算

输入(格式化k,v)数据集--> map映射成一个中间数据集(k,v)-->reduce

block:文件块
split: 切块
map: 执行maptask的
reduce: 执行reducetask
group(key): 相同k为一组的数据
partition: 分区.相当于有多少个reduce就有多少个partition. parttion和reduce进行绑定的
outputfile: 就是reduce输出的数据会在哪个地方,比如HDFS

block > split
   - 1 : 1
   - N : 1
   - 1 : N

split > map
   - 1 : 1

map > reduce
   - N : 1 
   - N : N
   - 1 : 1
   - 1 : N

group(key) > partition
   - 1 : 1
   - N : 1
   - N : N
   - 1 : N --->  1:N的比例关系违背了MapReduce原语. 不符合。

partition > outputfile
   - 1 : 1

MapReduce简单的WordCountde的计算流程
在这里插入图片描述

MapReduce运行平台YARN
MapReduce程序应该是在很多机器上并行启动, 而且先执行MapTask,当众多的maptask都处理完自己的数据后, 还需要启动众多的reduce task,
这个过程如果用用户自己手动调度不太现实,
需要一个自动化的调度平台--hadoop中就为MapReduce之类的分布式运行程序开发了一个自动化调度平台--YARN

在这里插入图片描述

MapReduce运行官方的wordcount小程序
1. 首先进入$HADOOP_HOME/share/hadoop/mapreduce下执行以下命令:
[root@master mapreduce]# hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount /opt/  /shaojun

注意: 1) 执行命令的前提是在HDFS中在/路径下创建一个opt文件。这个文件的内容是随便的东西。比如:

aa
ab
ab
aa
aa
aaa
bbb
aaa
a
aa
bb
dd
dd
ddddd
ddee
eee
eee
dde
dde
asga
ag
ages
asga
  1. HDFS下不需要创建一个shaojun目录,它会自动该目录,不需要手动指定。
  1. 使用HDFS命令可以看到/shaojun目录下的文件内容,内容如下:
    可以看到wordcount小程序计算的是源文件opt文件的单词出现的次数。以下可以看出单词出现的次数。
[root@master /]# hadoop fs -cat /shaojun/part-r-00000
a	1
aa	4
aaa	2
ab	2
ag	1
ages	1
asga	2
bb	1
bbb	1
dd	2
ddddd	1
dde	2
ddee	1
eee	2
  1. 登录yarn的web访问界面,可以看出执行该wordcount的相关信息。mapreduce的运行是需要yarn来提供资源和调度管理
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值