深入理解MapReduce的原理及过程

简单理解,MapReduce计算框架:

把需要计算的东西放入到MapReduce中进行计算,然后返回一个我们期望的结果。

所以首先我们需要一个来源(需要计算的东西)即输入(input),然后MapReduce操作这个输入(input),通过定义好的计算模型,最后得到一个(期望的结果)输出(output)。

在这里我们主要讨论的是MapReduce计算模型:

在运行一个mapreduce计算任务时候,任务过程被分为两个阶段:map阶段和reduce阶段,每个阶段都是用键值对(key/value)作为输入(input)和输出(output)。而程序员要做的就是定义好这两个阶段的函数:map函数和reduce函数。

实例代码 :

以MapReduce统计单词次数为例(伪代码),主要四个模块来讲解,如上图计算框架:

1、Input,数据读入 

// 设置数据输入来源
FileInputFormat.setInputPaths(job, args[0]);
FileInputFormat.setInputDirRecursive(job, true); //递归
job.setInputFormatClass(TextInputFormat.class);	//设置输入格式

//TextInputFormat,一种默认的文本输入格式,Mapper一次读取文本中的一行数据。

2、使用Mapper计算 

//设置Job的Mapper计算类和K2、V2类型
job.setMapperClass(WordCountMapper.class);	//1.设置Mapper类
job.setMapOutputKeyClass(Text.class);	//设置Mapper输出Key的类型
job.setMapOutputValueClass(LongW
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值