14mapreduce的流程说明&实现Mapper类&实现Driver以及测试运行——好程序

本文详细介绍了MapReduce的工作流程,包括Job、Task的定义,以及MapTask和ReduceTask的处理过程。Mapper负责数据的读取与逻辑运算,Reduce则根据key进行分组和逻辑处理。此外,还阐述了编写MapReduce程序的步骤,包括Mapper、Reducer和Driver的编程。示例展示了Mapper的输出和Reduce的输入排序情况。
摘要由CSDN通过智能技术生成

 

mapreduce核心名词
job:用户的一个计算请求称为一个作业。
task:每一个作业,都需要分拆成多个的task,交由多个主机来完成,拆分出来的执行单元就叫任务。
task又分为3种类型:
map:负责map阶段的整个的数据处理流程(需要资源)
reduce:负责reduce阶段的整个数据处理流程(需要资源)
appMaster:负责整个程序的过程调度以及状态协调(需要资源,ResourceManager首先分给它)

mapreduce的程序运行流程
1、一个mr程序启动的时候,最先启动的时mrAppMaster,mrAppmaster启动后根据本次job的描述信息(job:split分片信息),计算出需要的maptask的实例数量,然后向集群申请机器来启动maptask任务。
2、maptask任务启动之后,根据给定的数据切片范围进行数据处理,主要流程:
    根据客户端指定的inputformat来获取recordreader来读取数据,形成输入kv对。
    将输入的kv对传递给客户自定义的map方法,做逻辑运算,并将map方法的输出的kv对进行收集到缓存。
    
  将缓存中的kv对按照k进行分区排序后不断的溢写到磁盘文件(什么样的数据分到哪个reduce里面)
   到此maptask任务已经完成了
3、mrappmaster监控所有的maptask任务完成情况,会根据客户指定的参数启动相应数量的reduce任务,把那个告知reducetask要处理的数据范围(数据分区)(reduce任务是客户端人为指定的,数据分成多少个task,就会分成多少个分区)

4、reducetask任务启动之后,根据mrappmaster告知的数据范围所在的位置,从若干台maptask运行的主机上获取若干个maptask的输出结果文件,并在本机进行重新归并排序。然后按照相同key的kv分为一组(有多少k就分多少组),调用客户定义的reduce方法(业务逻辑),进行逻辑运算,并将运算结果输出成kv,然后调用客户指定的outputformat将结果输出到外部存储设备。

(map将资源分到磁盘的分区里,然后reduce被告知所做的任务,及任务所在的磁盘文件位置信息,则就可以主动去拉去资源)

 

编写一个mapreduce程序编程步骤(框架都是接口,只要将写好的程序放入接口里)
01、用户编程的程序分成三个部分:Mapper、Reducer、Driver(提交mr程序的客户端,Driver是驱动程序)
02、Mapper的输入数据是KV对形式(KV的类型可以自定义)
03、Mapper的输出数据是KV对形式(KV的类型可以自定义)
04、Mapper中的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值