ImageVerifierCode 换一换
格式:PDF , 页数:34 ,大小:1.08MB ,
资源ID:3210120      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3210120.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(mapreduce学习指导及疑难解惑汇总.pdf)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、http:/mapreduce学习指导及疑难解惑汇总学习指导及疑难解惑汇总大纲内容:大纲内容:1.思想起源:思想起源:我们在学习mapreduce,首先我们从思想上来认识。其实任何的奇思妙想,抽象的,好的想法、都来源于我们生活,而我们也更容易理解我们身边所发生事情。所以下面一篇便是从生活的角度,来让我们理解,什么是mapreduce。Hadoop简介(1):什么是Map/Reduce2.设计思路设计思路我们从思想上认识了mapreduce,那么mapreduce具体是什么,我们需要看得见,摸得着。我们该如何实现这个思想,我们该如何设计mapreduce。那么现在来说说它的设计思路。设计思路如何

2、表示:ok下面的帖子,是通过一张图来表达的。Mapreduce 整个工作机制图mapreduce是hadoop的核心,正因为mapreduce,所以才产生了分布式。所以我们可能通过一张图,了解的不够清楚和详细。我们还需要了解里面的原理:MapReduce工作原理讲解3.模型实现模型实现通过上面我们可能有了自己的一些看法。但是我们可能还是认识不太清楚。那么咱们在来看看编程模型,来进一步的了解。MapReduce 编程模型概述mapreduce编程模型4.产生问题产生问题我们看了上面的文章,这时候会有一些名词、概念进入我们的脑海。除了map,reduce,task,job,shuffe,parti

3、tion,combiner这些把我们给弄糊涂了。http:/我们产生问题如下:map的个数由谁来决定,如何计算?reduce个数由谁来决定,如何计算?简单来讲map由split来决定,reduce则是由partition来决定。详细可以查看如何确定 Hadoop map和reduce的个数-map和reduce数量之间的关系是什么?-shuffle是什么?partition是什么?combiner是什麽?他们三者之间的关系是什么?mapreduce是hadoop核心,而shuffle是mapreduce的核心,shuffle个人认为它是一个动态的过程,包含了Combiner,merge等的过程

4、,那么这里因为讲到shuffle,很多人都讲的全面,Combiner,merge,sort几乎全都讲了,这样讲是没有错误的,但是容易给初学者造成一个假象,那就是这些过程必须都是包含的,其实这些是根据个人的需求来确定的。彻底了解mapreduce核心Shuffle-解惑各种mapreduce问题同样关于上面的问题可以参考关于Mapper、Reducer的个人总结5.编程实现编程实现mapreduce是一种编程模型,我们认识了解,下面就需要编程实现了。那么mapreduce都能做些什么?下面我们可以看看MapReduce初级案例(1):使用MapReduce去重MapReduce初级案例(2):使

5、用MapReduce数据排序MapReduce初级案例(3):使用MapReduce实现平均成绩通过上面三个例子,也是我们验证前面所理解的内容。同样可以参考下面内容Hadoop mapper类的阅读Hadoop reducer类的阅读http:/Mapreduce shuffle和排序hadoop中mapreduce包及制作文档指导Hadoop开发环境搭建及map-reduce开发实例讲解视频下载如何进行Hadoop二次开发指导视频下载5.mapreduce应用应用上面是一些基本的知识,那么我们熟悉之后,其实有些地方,可以应用在其它方面。下面可以参考:淘宝之HBase MapReduce实例分

6、析MapReduce在压力测试中的应用-详细介绍:详细介绍:1.思想起源:思想起源:我们在学习mapreduce,首先我们从思想上来认识。其实任何的奇思妙想,抽象的,好的想法、都来源于我们生活,而我们也更容易理解我们身边所发生事情。所以下面一篇便是从生活的角度,来让我们理解,什么是mapreduce。Hadoop简介(1):什么是Map/ReduceHadoop简介简介http:/Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及分布式数据库Hbase,同时Hadoop的相关项目也很丰富,包括ZooKeeper,Pig

7、,Chukwa,Hive,Hbase,Mahout,flume等.这里详细分解这里面的概念让大家通过这篇文章了解到底是什么hadoop:1.什么是什么是Map/Reduce,看下面的各种解释:,看下面的各种解释:(1)MapReduce是hadoop的核心组件之一,hadoop要分布式包括两部分,一是分布式文件系统hdfs,一部是分布式计算框,就是mapreduce,缺一不可,也就是说,可以通过mapreduce很容易在hadoop平台上进行分布式的计算编程。(2)Mapreduce是一种编程模型,是一种编程方法,抽象理论。(3)下面是一个关于一个程序员是如何个妻子讲解什么是MapReduce

8、?文章很长请耐心的看。我问妻子:“你真的想要弄懂什么是MapReduce?”她很坚定的回答说“是的”。因此我问道:我:你是如何准备洋葱辣椒酱的?(以下并非准确食谱,请勿在家尝试)妻子:我会取一个洋葱,把它切碎,然后拌入盐和水,最后放进混合研磨机里研磨。这样就能得到洋葱辣椒酱了。妻子:但这和MapReduce有什么关系?我:你等一下。让我来编一个完整的情节,这样你肯定可以在15分钟内弄懂MapReduce.妻子:好吧。我:现在,假设你想用薄荷、洋葱、番茄、辣椒、大蒜弄一瓶混合辣椒酱。你会怎么做呢?http:/妻子:我会取薄荷叶一撮,洋葱一个,番茄一个,辣椒一根,大蒜一根,切碎后加入适量的盐和水,

9、再放入混合研磨机里研磨,这样你就可以得到一瓶混合辣椒酱了。我:没错,让我们把MapReduce的概念应用到食谱上。Map和Reduce其实是两种操作,我来给你详细讲解下。Map(映射):把洋葱、番茄、辣椒和大蒜切碎,是各自作用在这些物体上的一个Map操作。所以你给Map一个洋葱,Map就会把洋葱切碎。同样的,你把辣椒,大蒜和番茄一一地拿给Map,你也会得到各种碎块。所以,当你在切像洋葱这样的蔬菜时,你执行就是一个Map操作。Map操作适用于每一种蔬菜,它会相应地生产出一种或多种碎块,在我们的例子中生产的是蔬菜块。在Map操作中可能会出现有个洋葱坏掉了的情况,你只要把坏洋葱丢了就行了。所以,如果

10、出现坏洋葱了,Map操作就会过滤掉坏洋葱而不会生产出任何的坏洋葱块。Reduce(化简):在这一阶段,你将各种蔬菜碎都放入研磨机里进行研磨,你就可以得到一瓶辣椒酱了。这意味要制成一瓶辣椒酱,你得研磨所有的原料。因此,研磨机通常将map操作的蔬菜碎聚集在了一起。妻子:所以,这就是MapReduce?我:你可以说是,也可以说不是。其实这只是MapReduce的一部分,MapReduce的强大在于分布式计算。妻子:分布式计算?那是什么?请给我解释下吧。我:没问题。我:假设你参加了一个辣椒酱比赛并且你的食谱赢得了最佳辣椒酱奖。得奖之后,辣椒酱食谱大受欢迎,于是你想要开始出售自制品牌的辣椒酱。假设你每天

11、需要生产10000瓶辣椒酱,你会怎么办呢?妻子:我会找一个能为我大量提供原料的供应商。我:是的.就是那样的。那你能否独自完成制作呢?也就是说,独自将原料都切碎?http:/仅仅一部研磨机又是否能满足需要?而且现在,我们还需要供应不同种类的辣椒酱,像洋葱辣椒酱、青椒辣椒酱、番茄辣椒酱等等。妻子:当然不能了,我会雇佣更多的工人来切蔬菜。我还需要更多的研磨机,这样我就可以更快地生产辣椒酱了。我:没错,所以现在你就不得不分配工作了,你将需要几个人一起切蔬菜。每个人都要处理满满一袋的蔬菜,而每一个人都相当于在执行一个简单的Map操作。每一个人都将不断的从袋子里拿出蔬菜来,并且每次只对一种蔬菜进行处理,也

12、就是将它们切碎,直到袋子空了为止。这样,当所有的工人都切完以后,工作台(每个人工作的地方)上就有了洋葱块、番茄块、和蒜蓉等等。妻子:但是我怎么会制造出不同种类的番茄酱呢?我:现在你会看到MapReduce遗漏的阶段搅拌阶段。MapReduce将所有输出的蔬菜碎都搅拌在了一起,这些蔬菜碎都是在以key为基础的 map操作下产生的。搅拌将自动完成,你可以假设key是一种原料的名字,就像洋葱一样。所以全部的洋葱keys都会搅拌在一起,并转移到研磨洋葱的研磨器里。这样,你就能得到洋葱辣椒酱了。同样地,所有的番茄也会被转移到标记着番茄的研磨器里,并制造出番茄辣椒酱。(4)上面都是从理论上来说明什么是Ma

13、pReduce,那么咱们在MapReduce产生的过程和代码的角度来理解这个问题。如果想统计下过去10年计算机论文出现最多的几个单词,看看大家都在研究些什么,那收集好论文后,该怎么办呢?方法一:我可以写一个小程序,把所有论文按顺序遍历一遍,统计每一个遇到的单词的出现次数,最后就可以知道哪几个单词最热门了。这种方法在数据集比较小时,是非常有效的,而且实现最简单,用来解决这个问题很合适。方法二:写一个多线程程序,并发遍历论文。这个问题理论上是可以高度并发的,因为统计一个文件时不会影响统计另一个文件。当我们的机器是多核或者多处理器,方法二肯定比方法一高效。但是写一个多线程程序要比方法一困难多了,我们

14、必须自己同步共享数据,比如要防止两个线程重复统计文件。方法三:http:/ 把作业交给多个计算机去完成。我们可以使用方法一的程序,部署到N台机器上去,然后把论文集分成N份,一台机器跑一个作业。这个方法跑得足够快,但是部署起来很麻烦,我们要人工把程序copy到别的机器,要人工把论文集分开,最痛苦的是还要把N个运行结果进行整合(当然我们也可以再写一个程序)。方法四:让MapReduce来帮帮我们吧!MapReduce本质上就是方法三,但是如何拆分文件集,如何copy程序,如何整合结果这些都是框架定义好的。我们只要定义好这个任务(用户程序),其它都交给MapReduce。map函数和函数和reduc

15、e函数函数map函数和reduce函数是交给用户实现的,这两个函数定义了任务本身。map函数:接受一个键值对(key-value pair),产生一组中间键值对。MapReduce框架会将map函数产生的中间键值对里键相同的值传递给一个reduce函数。reduce函数:接受一个键,以及相关的一组值,将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)。统计词频的MapReduce函数的核心代码非常简短,主要就是实现这两个函数。map(String key,String value):/key:document name/value:document contents for each

16、 word w in value:EmitIntermediate(w,1);reduce(String key,Iterator values):/key:a word http:/ list of counts int result=0;for each v in values:result+=ParseInt(v);Emit(AsString(result);在统计词频的例子里,map函数接受的键是文件名,值是文件的内容,map逐个遍历单词,每遇到一个单词w,就产生一个中间键值对,这表示单词w咱又找到了一个;MapReduce将键相同(都是单词w)的键值对传给reduce函数,这样reduce函数接受的键就是单词w,值是一串1(最基本的实现是这样,但可以优化),个数等于键为w的键值对的个数,然后将这些“1”累加就得到单词w的出现次数。最后这些单词的出现次数会被写到用户定义的位置,存储在底层的分布式存储系统(GFS或HDFS)。工作原理工作原理http:/上图是论文里给出的流程图。一切都是从最上方的user program开始的,user program链接了MapReduce库,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1