分享

mapreduce学习指导及疑难解惑汇总

pig2 发表于 2014-3-9 11:00:13 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 24 92926



1.思想起源:

我们在学习mapreduce,首先我们从思想上来认识。其实任何的奇思妙想,抽象的,好的想法、都来源于我们生活,而我们也更容易理解我们身边所发生事情。所以下面一篇便是从生活的角度,来让我们理解,什么是mapreduce。
Hadoop简介(1):什么是Map/Reduce

2.设计思路

我们从思想上认识了mapreduce,那么mapreduce具体是什么,我们需要看得见,摸得着。我们该如何实现这个思想,我们该如何设计mapreduce。那么现在来说说它的设计思路。

设计思路如何表示:ok下面的帖子,是通过一张图来表达的。
Mapreduce 整个工作机制图

mapreduce是hadoop的核心,正因为mapreduce,所以才产生了分布式。所以我们可能通过一张图,了解的不够清楚和详细。我们还需要了解里面的原理:
MapReduce工作原理讲解

new2.jpg
3.模型实现

通过上面我们可能有了自己的一些看法。但是我们可能还是认识不太清楚。那么咱们在来看看编程模型,来进一步的了解。

MapReduce 编程模型概述


mapreduce编程模型


4.产生问题

我们看了上面的文章,这时候会有一些名词、概念进入我们的脑海。
除了map,reduce,task,job,shuffe,partition,combiner这些把我们给弄糊涂了。
我们产生问题如下:
map的个数由谁来决定,如何计算?
reduce个数由谁来决定,如何计算?
简单来讲map由split来决定,reduce则是由partition来决定。
详细可以查看
如何确定 Hadoop map和reduce的个数--map和reduce数量之间的关系是什么?

---------------------------------------------------------------------------------------------------
shuffle是什么?
partition是什么?
combiner是什麽?
他们三者之间的关系是什么?

mapreduce是hadoop核心,而shuffle是mapreduce的核心,shuffle个人认为它是一个动态的过程,包含了Combiner,merge等的过程,那么这里因为讲到shuffle,很多人都讲的全面,Combiner,merge,sort几乎全都讲了,这样讲是没有错误的,但是容易给初学者造成一个假象,那就是这些过程必须都是包含的,其实这些是根据个人的需求来确定的。
彻底了解mapreduce核心Shuffle--解惑各种mapreduce问题

对于Combiner的疑惑可以查看
Mapper过程中Combiner的作用
解决了下面问题
为什么需要在Mapper端进行归约处理?
为什么可以在Mapper端进行归约处理?
既然在Mapper端可以进行归约处理,为什么在Reducer端还要处理?

上面三个问题,可以查看帖子




同样关于上面的问题可以参考
关于Mapper、Reducer的个人总结




5.编程实现

mapreduce是一种编程模型,我们认识了解,下面就需要编程实现了。那么mapreduce都能做些什么?下面我们可以看看

新手指导,该如何在开发环境中,创建mapreduce程序

MapReduce初级案例(1):使用MapReduce去重


MapReduce初级案例(2):使用MapReduce数据排序


MapReduce初级案例(3):使用MapReduce实现平均成绩


通过上面三个例子,也是我们验证前面所理解的内容。
同样可以参考下面内容

Hadoop mapper类的阅读

Hadoop reducer类的阅读

Mapreduce shuffle和排序

hadoop中mapreduce包及制作文档指导


Hadoop开发环境搭建及map-reduce开发实例讲解视频下载


如何进行Hadoop二次开发指导视频下载



6.mapreduce应用
上面是一些基本的知识,那么我们熟悉之后,其实有些地方,可以应用在其它方面。下面可以参考:

淘宝之HBase MapReduce实例分析


MapReduce在压力测试中的应用





这里附上一张图,想看的仔细,点击图,按住鼠标滑轮,放大即可
mapreduce.jpg




本帖被以下淘专辑推荐:

已有(24)人评论

跳转到指定楼层
nettman 发表于 2014-7-18 22:51:42
ascentzhen 发表于 2014-7-18 16:21
在eclipse下搭建开发环境,有具体的资料参考吗?


可以参考下面三个帖子:
新手指导:Windows上使用Eclipse远程连接Hadoop进行程序开发


windows通过hadoop-eclipse-plugin插件远程开发hadoop运行mapreduce遇到问题及解决

hadoop开发方式总结及操作指导

回复

使用道具 举报

方文才 发表于 2015-9-28 22:43:44
楼主,请教你一个问题,发现五路在map阶段还实在reduce阶段,都有进行[b]排序,想问排序有什么好处吗,不排序不可以吗,没感觉到排序对整个计算有什么效率上的提升啊?
回复

使用道具 举报

ascentzhen 发表于 2014-7-18 16:21:52
在eclipse下搭建开发环境,有具体的资料参考吗?
回复

使用道具 举报

ascentzhen 发表于 2014-7-19 15:43:46
非常感谢楼主的指导
回复

使用道具 举报

云晓翼 发表于 2015-3-30 21:07:41
非常感谢楼主的指导
回复

使用道具 举报

ding123lei 发表于 2015-6-2 10:15:08
非常感谢楼主的指导
回复

使用道具 举报

123下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条