最新mapreduce编程说明和程序流程.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《最新mapreduce编程说明和程序流程.doc》由会员分享,可在线阅读,更多相关《最新mapreduce编程说明和程序流程.doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datemapreduce编程说明和程序流程mapreduce编程说明和程序流程How To Write Map-Reduce On Hadoop概述Hadoop Map-Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在 由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。一个Map-Reduce作业(job)通常会把输入的
2、数据集切分为若干独立的数据块,由map任务(task)以完全并行的方式处理它们。框架会对map的输出先进行排序, 然后把结果输入给reduce任务。通常作业的输入和输出都会被存储在文件系统中。 整个框架负责任务的调度和监控,以及重新执行已经失败的任务。通常,Map-Reduce框架和分布式文件系统是运行在 一组相同的节点上的,也就是说,计算节点和存储节点通常在一起。这种配置允许框架在那些 已经存好数据的节点上高效地调度任务,这可以使整个集群的网络带宽被非常高效地利用。Map-Reduce框架由单独一个masterJobTracker和每个集群节点一个 slaveTaskTracker共同组成。
3、这个master负责调度构成一个作业的所有任务, 这些任务分布在不同的slave上,master监控它们的执行,重新执行已经失败的任务。而slave 仅负责执行由master指派的任务。应用程序至少应该指明输入/输出的位置(路径),并通过实现合适的接口或抽象类提供map和reduce函数。 再加上其他作业的参数,就构成了作业配置(job configuration)。然后,Hadoop的job client提交作业(jar包/可执行程序 等)和配置信息给JobTracker,后者负责分发这些软件和配置信息 给slave、调度任务且监控它们的执行,同时提供状态和诊断信息给job-client。虽
4、然Hadoop框架是用JavaTM实现的,但Map-Reduce应用程序则不一定要用 Java来写 。 Hadoop Streaming是一种运行作业的实用工具,它允许用户创建和运行任何可执行程序 (例如:Shell工具)来做为mapper和reducer。 Hadoop Pipes是一个与SWIG兼容的C+ API (没有基于JNITM技术),它也可用于实现Map-Reduce应用程序。输入与输出Map-Reduce框架运转在键值对上,也就是说, 框架把作业的输入看为是一组键值对,同样也产出一组键值对做为作业的输出,这两组键值对的类型可能不同。框架需要对key和value的类(classes
5、)进行序列化操作, 因此,这些类需要实现Writable接口。 另外,为了方便框架执行排序操作,key类必须实现WritableComparable接口。一个Map-Reduce 作业的输入和输出类型如下所示:(input)-map-combine-reduce-(output)作业配置老接口JobConf代表一个Map-Reduce作业的配置。JobConf的功能已被新的类Configuration和Job替换。Configuration类描述了资源,这些资源大多都是从XML配置文件中读取的属性和值组成。比如来自core-default.xml和core-site.xml。Job描述了用户角
6、度的视图,它允许用户配置、提交、控制它的执行和查询状态。只有在作业提交之后才能使用set方法。setNumReduceTasks() 设置Reduce的任务数;setJarByClass() 设置Jar包的类来源;setMapperClass()设置实现的Mapper类;setCombinerClass()设置实现的Combiner类;setReducerClass()设置实现的Reducer类;setInputFormatClass()设置实现的InputFormat类;setOutputKeyClass()设置最终的输出key类;setOutputValueClass()设置最终的输出Va
7、lue类。默认情况下使用的是FileInputFormat类作为InputFormat类。MapReduce编程接口参数作用缺省值其它实现InputFormat 将输入的数据集切割成小数据集 InputSplits, 每一个 InputSplit 将由一个 Mapper 负责处理。此外 InputFormat 中还提供一个 RecordReader 的实现, 将一个 InputSplit 解析成 对提供给 map 函数。TextInputFormat(针对文本文件,按行将文本文件切割成 InputSplits, 并用 LineRecordReader 将 InputSplit 解析成 对,ke
8、y 是行在文件中的位置,value 是文件中的一行) SequenceFileInputFormat OutputFormat 提供一个 RecordWriter 的实现,负责输出最终结果TextOutputFormat(用 LineRecordWriter 将最终结果写成纯文件文件,每个 对一行,key 和 value 之间用 tab 分隔) SequenceFileOutputFormatOutputKeyClass 输出的最终结果中 key 的类型LongWritable OutputValueClass 输出的最终结果中 value 的类型Text MapperClass Mapper
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 mapreduce 编程 说明 程序 流程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内