MapReduce工作原理及流程

一、MapReduce工作原理

作业执行涉及4个独立的实体

1、客户端,用来提交MapReduce作业
2、JobTracker,用来协调作业的运行
3、TaskTracker,用来处理作业划分后的任务
4、HDFS,用来在其它实体间共享作业文件


首先是客户端要编写好mapreduce程序,配置好mapreduce的作业也就是job,
接下来就是提交job了,提交job是提交到JobTracker上的,这个时候JobTracker就会构建这个job,具体就是分配一个新的job任务的ID值

接下来它会做检查操作,这个检查就是确定输出目录是否存在,如果存在那么job就不能正常运行下去,JobTracker会抛出错误给客户端,接下来还要检查输入目录是否存在,如果不存在同样抛出错误,如果存在JobTracker会根据输入计算输入分片(Input Split),如果分片计算不出来也会抛出错误,至于输入分片我后面会做讲解的,这些都做好了JobTracker就会配置Job需要的资源了。

分配好资源后,JobTracker就会初始化作业,初始化主要做的是将Job放入一个内部的队列,让配置好的作业调度器能调度到这个作业,作业调度器

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MapReduce是一种用于处理大规模数据集的编程模型和计算框架。它的工作原理流程如下: 1. Map阶段:在Map阶段,输入数据被分割成多个小的数据块,并由多个Map任务并行处理。每个Map任务将输入数据块转换为键值对的形式,并执行用户定义的Map函数。Map函数将每个键值对映射为中间键值对。 2. Shuffle阶段:在Shuffle阶段,Map任务的输出被分区、排序和分组,以便将具有相同键的中间键值对发送到同一个Reduce任务。这个过程涉及到数据的移动和排序操作。 3. Reduce阶段:在Reduce阶段,每个Reduce任务接收到一组具有相同键的中间键值对,并执行用户定义的Reduce函数。Reduce函数将这些中间键值对聚合为最终的输出结果。 整个MapReduce过程由一个主节点(JobTracker)和多个工作节点(TaskTracker)组成。JobTracker负责资源管理和作业控制,它将输入数据划分为多个数据块,并将Map和Reduce任务分配给可用的TaskTracker。TaskTracker负责执行Map和Reduce任务,并将结果返回给JobTracker。 总结起来,MapReduce工作原理是通过将大规模数据集分割成小的数据块,并在多个节点上并行处理,最后将结果聚合起来得到最终的输出。这种分布式计算模型可以有效地处理大规模数据集,并提供了高可靠性和可扩展性。\[1\]\[2\] #### 引用[.reference_title] - *1* [MapReduce工作原理工作流程](https://blog.csdn.net/weixin_43829117/article/details/122287835)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [MapReduce的原理和执行流程](https://blog.csdn.net/leanaoo/article/details/83153889)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值