大数据-第04章 MapReduce结构原理图

在这里插入图片描述
MapReduce执行步骤:
①用户编写MapReduce程序通过client提交jobtrasker
②jobstrasker开始检查tasktrasker健康情况,将client任务交给暂时空闲的tasktrasker执行
③jobstrasker并将各个tasktrasker工作状态和健康情况发送给taskscheduler
④根据任务情况开始分配资源给map task执行map shuffle和reduce task 执行reduce shuffle。
⑤map task向jobstrasker反应数据归并、拆分是否执行完成
⑥reduce task向jobstrasker请求,若map task执行完成,则调用数据进行计算
⑦输出计算结果以HDFS文件格式 。

Shuffler的执行过程

(一)Map shuffle执行过程
①输入一个个切片split(一般我们默认一个block对应一个split)
②将split数值存入到Map里面,以键值对形式存储
③对map里面的值进行排序
④对map里面的值进行归并
⑤输出一个整合的map

(二)Reduce shuffle执行过程
①接收各个map整合后的数据
②对各个map里面的相同的K值归并到一起,并对其排序
③调用一个reduce对其归并后的map进行计算
④输出一个计算结果HDFS文件

(三)Shuffler的执行过程
①输入一个个切片split(一般我们默认一个block对应一个split)
②将一个个split数值存入到一个个Map里面,以键值对形式存储
③对各个map里面的值进行排序
④对各个map里面的值进行归并
⑤将不同map里面相同K值归并在一起并排序,形成新的map
⑥调用一个reduce对其归并后的map进行计算
⑦输出一个计算结果HDFS文件

切记:
• 不同的Map任务之间不会进行通信
• 不同的Reduce任务之间也不会发生任何信息交换
• 用户不能显式地从一台机器向另一台机器发送消息
• 所有的数据交换都是通过MapReduce框架自身去实现的

1.分布式计算编程与传统计算编程框架的区别?
答:
在这里插入图片描述
2.MapReduce概述
答:.MapReduce是一个将复杂的、运行与大规模集群上的并行计算过程抽象成两个函数map和reduce,采用分而治之的策略,将一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片,这些分片可以被多个map任务处理,设计理念就是以计算想数据靠拢。架构采用master/slave,一个master和若干slave,master上运行jobTracker(ResourceManger),salve上运行TaskTracker(nodemager)。上面可以用多种语言来编写程序。
3.block块和切片的关系
答:
在这里插入图片描述
4.client
答:
①用户可以编写MapReduce程序通过Client提交到JobTracker端
②用户可以通过client提供的一些接口查看作业的运行状态
5. JobTracker
答:
①JobTracker负责资源监控和作业调度
②JobTracker监控所有TaskTracker与job的健康状况,一旦发现失败,就将相应的任务转移到其他节点
③JobTracker会跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务调度器(TaskScheduler),而调度器会在资源出现空闲时,选择合适的任务去使用这些资源。
6.TaskTracker
答:
①TaskTracker会周期性地通过“心跳”将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接受JobTracker发送过来的命令,并执行相应的操作(如启动新任务、杀死任务等)。
②TaskTrac,使用“slot”等量划分节点上的,一个task获取到一个slot后才有机会运行,而hadoop调度器的作用就是将各个tasktracker上空闲slot分配给task,slot分为map slot和reduce slot两种,分别为供map task 和reduce task使用。
8.Task
答:分为map task 和reduce task两种,均有tasktracker启动。
9.split
答:MapReduce的处理单元是split,为逻辑概念,它只包含一些元数据信息,比如数据起始位置、数据长度、数据节点等,它的划分完全有用户自己决定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值