Hadoop-map reduce处理过程

本文介绍了Hadoop MapReduce的基本概念,包括Job的组成、Map和Reduce阶段的工作原理,以及Combine函数的作用。此外还详细解析了MapReduce的不同执行场景及其输出特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 在hadoop中,每个MapReduce任务都被初始化为一个Job。每个Job又可以分成两个阶段:map阶段和reduce阶段;map函数接受一个<key,value>形式的输入,然后同样产生一个<key,value>形式的中间输出,Hadoop会负责将所有具有相同结果中间key值的value集合到一起传给reduce函数,reduce函数接受一个如<key,(list of value)>形式的输入,然后对这个value集合进行处理,每个reduce产生0或1个输出,reduce的输出也是<key,value>形式。


2、map-reduce处理流程:

     场景一:每个map对应一个输出,多个map对应有多个输出; map输出作为reduce的输入,reduce进行合并排序,输出最终结果。

     场景二:MapReduce再执行过程中往往不止一个reduce task,reduce task的数量是可以通过程序制定的,当存在多个reduce task时,每个reduce会收集一个或多个key值。需要注意的是,当出现多个reduce task时,每个reduce task都会生成一个输出文件。

     场景三:另外,没有reduce task的时候,系统会直接将map的输出作为输出结果作为最终结果,同时map task的数量可以看做是reduce task的数量,即:有多少个map task 就有多少个输出文件。


3、combine函数: 在mapreduce中使用combine函数很简单,只需再程序中添加如下内容:job.setCombinerClass(combine.class);可以制定reduce函数为combine函数,因为reduce函数有合并功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值