大数据技术---MapReduce

一、MapReduce概述

MapReduce:是一种分布式并行编程框架。
在这里插入图片描述
在这里插入图片描述
MapReduce的理念:
1、计算向数据靠拢而不是数据向计算靠拢
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、MapReduce体系结构

在这里插入图片描述
1、client(客户端)
通过client可以提交用户编写的应用程序,用户通过它将应用程序交到 jobtracker 端;
通过这些client,用户也可以通过它提供的一些接口去查看当前提交作业的运行状态。
2、jobtracker(作业跟踪器)
(1)负责资源的监控和作业的调度;
(2)监控底层的其它的 tasktracker 以及当前运行的job的健康状况;
(3)一旦探测到失败的情况就把这个任务转移到其它节点继续执行跟踪任务执行进度和资源使用量。
3、tasktracker(任务调度器)
(1)执行具体的相关任务,一般接收jobtracker发送过来的命令;
(2)把一些自己的资源使用情况,以及任务的运行进度通过心跳的方式,也就说heartbeat发送给jobtracker。

三、MapReduce工作流程

mapreduce和hdfs组合使用。
在这里插入图片描述
在这里插入图片描述
inputformat将数据进行逻辑分片,由RR进行读取处理,将数据输出为<key,value>格式,通过shuffle将数据处理后分发给reduce进行处理分析,输出<key,value>,输出到分布式文件系统。
1、分片
分多少片,就会有多少个map任务。分片大小通常将一个块的大小作为一个分片,每个块冗余存储在多个数据节点中。
reduce任务的数量:最优的任务个数取决于集群中可用的reduce任务槽的数目;通常设置比reduce任务槽数据稍小一些的reduce任务个数,这样可以预留一些系统资源处理可能发生的错误。
在这里插入图片描述
2、shuffle过程
在这里插入图片描述
(1)map端的shuffle过程
map输出任务首先放入缓存中,写满缓存就启动溢写进程(溢写比),溢写到磁盘。
在这里插入图片描述
(2)reduce端的shuffle过程

在这里插入图片描述

四、MapReduce应用程序的执行过程

在这里插入图片描述
MapReduce实例:
在这里插入图片描述
1、key是行号,value是内容
在这里插入图片描述
2、
在这里插入图片描述
定义combine函数时的情况:
在这里插入图片描述
MapReduce具体应用:用MapReduce实现关系表的自然连接
在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值