Hadoop大数据开发实战-第07章-认识MapReduce编程模型课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Hadoop大数据开发实战-第07章-认识MapReduce编程模型课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hadoop 数据 开发 实战 07 认识 MapReduce 编程 模型 课件
- 资源描述:
-
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
展开阅读全文