Hadoop-MapReduce原理

MapReduce是一种用于处理和生成大数据集的编程模型,它将复杂计算任务分解为Map和Reduce两个阶段。Map阶段将数据拆分成多个子任务,Reduce阶段合并子任务结果。在扑克牌问题中,通过MapReduce可以高效找出缺少的牌。MapReduce作业包含Job和Task,由JobTracker调度,TaskTracker执行。系统具备容错机制,如重复执行和推测执行,确保任务完成。
摘要由CSDN通过智能技术生成

MapReduce是将一个大任务分成多个小任务(Map),并执行之后,合并结果(reduce).

  • 其实许多分析计算的过程都可以拆分成两个步骤
  1. Map:分成多个子任务
  2. reduce:合并所有子任务的执行结果
  • 举一个例子:

假设现在有1000副扑克牌,其中有一个副扑克牌中少了一张,如何找出少了哪一张牌?

  • 如果使用MapReduce的方式就是先将1000副扑克牌分成多份,比如说分成5份,交由5个人手中,每个人开始将手中的牌进行分类计算,每个人都会得出A有几张,2有几张等等,最后得出结果,分析下哪类牌比预计少了一张就可以知道是少了哪一张牌.

MapReduce运行流程

  1. 基本概念

Job与Task
一个Job为一个作业,一个作业可分为多个Task,Task也可分为MapTask与ReduceTask

JobTracker的角色
负责作业调度
分配任务,监控任务执行进度
监控TaskTracker

TaskTracker的角色
执行任务
汇报任务状态

  • MapReduce执行作业过程

第一步得到数据时先将数据进行分片,然后拆分成多个Map任务,接着执行Map任务得到一个中间结果,这些中间结果都是一些key-value对数据,接着有这些中间结果得到多个Reduce任务,当最后执行完这些Reduce任务之后得到最后结果,将最后结果输出到HDFS或者其他位置.
任何任务都是先提交到JobTracker

在这里插入图片描述

  1. MapReduce的容错机制
  1. 重复执行,当一个任务执行出错了,会重复执行4次,如果4次之后还是出错则放弃
  2. 推测执行,当一个任务执行的时间特别长,或者特别慢的时候,则会新增一个同样的任务执行,直到其中一个任务执行完毕才会停止另一个任务.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值