ImageVerifierCode 换一换
格式:PPTX , 页数:26 ,大小:2.32MB ,
文档编号:3373427      下载积分:22 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3373427.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

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

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(Hadoop大数据开发实战-第07章-认识MapReduce编程模型课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

Hadoop大数据开发实战-第07章-认识MapReduce编程模型课件.pptx

1、认识MapReduce编程模型主要内容lMapReduce编程模型简介lWordCount编程实例lHadoop MapReduce架构lMapReduce实战开发MapReduce编程模型简介l MapReduce是一种可用于数据处理的编程模型。该模型比较简单,但用于编写有用的程序并不简单。Hadoop可以运行由各种语言编写的MapReduce程序。例如:Java、Ruby、Python和C+语言等。最重要的是,MapReduce程序本质上是并行运行的,因此可以将大规模的数据分析任务交给任何一个拥有足够多机器的运行商。MapReduce的优势在于处理大规模数据集。MapReduce编程模型简

2、介l 1、从MapReduce自身的命名特点可以看出,MapReduce由两个阶段组成:Map和Reduce。用户只需map()和reduce()两个函数,即可完成简单的分布式程序设计。l 2、map()函数以key/value对作为输入,产生另外一系列key/value对作为中间输出写入本地磁盘。MapReduce框架会自动将这些中间数据按照key值进行聚合,且key值相同的数据被统一交给reduce()函数处理。l 3、reduce()函数以key及对应的value列表作为输入,经合并key相同的value值后,产生另外一系列key/value对作为最终输出写入HDFS。MapReduce

3、编程模型简介lMapReduce设计目的:易于编程 良好的扩展性 高容错性WordCount编程实例l Mapper类:public class WordMapper extends Mapper public static final IntWritable val=new IntWritable(1);public static final Text word=new Text();public void map(Object key,Text value,Context context)throws InterruptedException,IOException String line

4、=value.toString();String arr=line.split(t);for(String wd:arr)word.set(wd);context.write(word,val);WordCount编程实例l Reducer类 public class WordReducer extends Reducer public IntWritable val=new IntWritable();public void reduce(Text key,Iterable values,Context context)throws InterruptedException,IOExcept

5、ion int sum=0;for(IntWritable value:values)sum+=value.get();val.set(sum);context.write(key,val);WordCount编程实例lmain类:public class WordCount public static void main(String args)throws IOException,ClassNotFoundException,InterruptedException String intput=null;String output=null;if(null!=args&args.lengt

6、h=2)intput=args0;output=args1;Job job=new Job(new Configuration(),word count);/创建一个job /以jar包的形式运行job.setJarByClass(WordCount.class);/设置Mapper类和Reducer类job.setMapperClass(Mapper.class);job.setReducerClass(Reducer.class);WordCount编程实例 /设置输出的key/value的输出数据类型 job.setOutputKeyClass(Text.class);job.setOu

7、tputValueClass(IntWritable.class);/设置输入输出的格式FileInputFormat.addInputPath(job,new Path(intput);FileOutputFormat.setOutputPath(job,new Path(output);System.exit(job.waitForCompletion(true)?0:1);else System.err.println(wordcount );运行结果WordCount编程实例l 用户编写完MapReduce程序后,按照一定的规则指定程序的输入和输出目录,并提交到Hadoop集群中,作业

8、在Hadoop中的执行过程如图所示。Hadoop将输入数据切分成若干个输入分片(input split),并将每个split交给一个Map Task处理;Map Task不断的从对应的split中解析出一个个key/value,并调用map()函数处理,处理完之后根据Reduce Task个数将结果分成若干个分区(partition)写到本地磁盘;同时,每个Reduce Task从每个Map Task上读取属于自己的那个partition,然后基于排序的方法将key相同的数据聚集在一起,调用reduce()函数处理,并将结果输出到文件中。WordCount编程实例l 流程图如下:Hadoop

9、MapReduce架构Hadoop MapReduce架构l1)Client用户编写的MapReduce程序通过Client提交到JobTracker端;同时,用户可通过Client提供的一些接口查看作业的运行状态。在Hadoop内部用“作业”(Job)表示MapReduce程序。一个MapReduce程序可对应若干个作业,而每个作业会被分解成若干个Map/Reduce任务(Task)。l2)JobTrackerJobTracke负责资源监控和作业调度。JobTracker 监控所有TaskTracker 与job的健康状况,一旦发现失败,就将相应的任务转移到其他节点;同时,JobTracke

10、r 会跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务调度器,而调度器会在资源出现空闲时,选择合适的任务使用这些资源。在Hadoop 中,任务调度器是一个可插拔的模块,用户可以根据自己的需要设计相应的调度器。Hadoop MapReduce架构l 3)TaskTracker TaskTracker 会周期性地通过Heartbeat 将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker 发送过来的命令并执行相应的操作(如启动新任务、杀死任务等)。TaskTracker 使用“slot”等量划分本节点上的资源量。“slot”代表计算资源(CPU

11、、内存等)。一个Task 获取到一个slot 后才有机会运行,而Hadoop 调度器的作用就是将各个TaskTracker 上的空闲slot 分配给Task 使用。slot 分为Map slot 和Reduce slot 两种,分别供MapTask 和Reduce Task 使用。TaskTracker 通过slot 数目(可配置参数)限定Task 的并发度。Hadoop MapReduce架构l 4)Task Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动。HDFS 以固定大小的block 为基本单位存储数据,而对于MapReduce 而言,

12、其处理单位是split。split 是一个逻辑概念,它只包含一些元数据信息,比如数据起始位置、数据长度、数据所在节点等。它的划分方法完全由用户自己决定。但需要注意的是,split 的多少决定了Map Task 的数目,因为每个split 只会交给一个Map Task 处理。Hadoop MapReduce架构l Map Task 执行过程如下图 所示。由该图可知,Map Task 先将对应的split 迭代解析成一个个key/value 对,依次调用用户自定义的map()函数进行处理,最终将临时结果存放到本地磁盘上,其中临时数据被分成若干个partition,每个partition 将被一个R

13、educe Task 处理。Hadoop MapReduce架构l Reduce Task 执行过程下图所示。该过程分为三个阶段:从远程节点上读取MapTask 中间结果(称为“Shuffle 阶段”);按照key 对key/value 对进行排序(称为“Sort 阶段”);依次读取,调用用户自定义的reduce()函数处理,并将最终结果存到HDFS 上(称为“Reduce 阶段”)。MapReduce实战开发l 数据源 sogou500w数据或sogou4000w数据l 数据字段描述 Time:用户访问时间 Uid:用户的id Keyword:访问的关键字 Rank:点击排名 Order:页

14、数 Url:网址条件过滤l 统计出搜索过包含有“仙剑奇侠传”内容的UID及搜索关键字记录详细代码见XjUid.javal rank2的所有UID及数量代码见UidByRank.java搜索过仙剑奇侠传内容的UID、搜索记录static class UidMap extends Mapper Text uid=new Text();protected void map(LongWritable key,Text value,org.apache.hadoop.mapreduce.Mapper.Context context)throws java.io.IOException,Interrupt

15、edException String lines=value.toString().split(t);if(lines!=null&lines.length=6)String kw=lines 2;if(kw.indexOf(“仙剑奇侠传)=0)uid.set(lines1);context.write(uid,new Text(kw);搜索过仙剑奇侠传内容的UID、搜索记录public static void main(String args)throws IOException,ClassNotFoundException,InterruptedException if(args.leng

16、th!=2&args=null)System.err.println(Please Iput Right Path!);System.exit(0);Configuration configuration=new Configuration();Job job=new Job(configuration,BaiduUid.class.getSimpleName();job.setJarByClass(BaiduUid.class);job.setInputFormatClass(TextInputFormat.class);job.setOutputFormatClass(TextOutput

17、Format.class);FileInputFormat.setInputPaths(job,new Path(args0);FileOutputFormat.setOutputPath(job,new Path(args1);job.setMapperClass(UidMap.class);job.setNumReduceTasks(0);job.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);job.waitForCompletion(true);条件查询l上午7-9点之间,搜索过“赶集网”的用户 详细代

18、码请见GjTest.java本章小结l MapReduce主要分为input、splitting、Mapping、Shuffling、Reducing、Final reduce这几个阶段。l Hadoop MapReduce处理的数据一般位于底层分布式文件系统中。该系统往往将用户的文件切分为若干个固定大小的block存储到不同的节点上。默认情况下,MapReduce的每个Task处理一个block。l MapReduce主要由四个组件构成,分别是Client,JobTracker,TaskTracker和Task,它们共同保障一个作业的成功运行。作业l用MapReduce实现WordCount谢谢

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|