MapReduce应用场景原理基本架构及使用方法.pdf
- 文档编号:3210431
- 上传时间:2022-11-20
- 格式:PDF
- 页数:72
- 大小:30.55MB
MapReduce应用场景原理基本架构及使用方法.pdf
《MapReduce应用场景原理基本架构及使用方法.pdf》由会员分享,可在线阅读,更多相关《MapReduce应用场景原理基本架构及使用方法.pdf(72页珍藏版)》请在冰豆网上搜索。
MapReduce应用场景、原理、基本架构及使用方法主要内容主要内容MapReduce概述概述1MapReduce编程模型编程模型2MapReduce基本架构和原理基本架构和原理3MapReduce程序设计程序设计4主要内容主要内容MapReduce概述概述1MapReduce编程模型编程模型2MapReduce基本架构和原理基本架构和原理3MapReduce程序设计程序设计44MapReduce概述概述源自于源自于Google的的MapReduce论文论文发表于发表于2004年年12月月HadoopMapReduce是是GoogleMapReduce克隆版克隆版MapReduce特点特点易于编程易于编程良好的扩展性良好的扩展性高容错性高容错性适合适合PB级以上海量数据的级以上海量数据的离线处理离线处理EditedbyFoxitReaderCopyright(C)byFoxitSoftwareCompany,2005-2008ForEvaluationOnly.5MapReduce的特色的特色不擅长的方面不擅长的方面实时计算实时计算像像MySQL一样一样,在毫秒级或者秒级内返回结果在毫秒级或者秒级内返回结果流式计算流式计算MapReduce的输入数据集是静态的的输入数据集是静态的,不能动态变化不能动态变化MapReduce自身的设计特点决定了数据源必须是静自身的设计特点决定了数据源必须是静态的态的DAG计算计算多个应用程序存在依赖关系多个应用程序存在依赖关系,后一个应用程序的后一个应用程序的输入为前一个的输出输入为前一个的输出EditedbyFoxitReaderCopyright(C)byFoxitSoftwareCompany,2005-2008ForEvaluationOnly.主要内容主要内容MapReduce概述概述1MapReduce编程模型编程模型2MapReduce基本架构和原理基本架构和原理3MapReduce程序设计程序设计47MapReduce的实例的实例Wordcount场景场景:
有大量文件有大量文件,里面存储了单词里面存储了单词,且一个单词占一行且一个单词占一行任务任务:
如何统计每个单词出现的次数如何统计每个单词出现的次数?
类似应用场景类似应用场景:
搜索引擎中搜索引擎中,统计最流行的统计最流行的K个搜索词个搜索词;统计搜索词频率统计搜索词频率,帮助优化搜索词提示帮助优化搜索词提示8MapReduce的实例的实例WordcountCase1:
整个文件可以加载到内存中整个文件可以加载到内存中;sortdatafile|uniq-cCase2:
文件太大不能加载到内存中文件太大不能加载到内存中,但但可以存放到内存中可以存放到内存中;Case3:
文件太大无法加载到内存中文件太大无法加载到内存中,且且也不行也不行9MapReduce的实例的实例Wordcount将问题范化为将问题范化为:
有一批文件(规模为有一批文件(规模为TB级或级或者者PB级)级),如何统计这些文件中所有单词出如何统计这些文件中所有单词出现的次数现的次数;方案方案:
首先首先,分别统计每个文件中单词出现分别统计每个文件中单词出现次数次数,然后累加不同文件中同一个单词出现然后累加不同文件中同一个单词出现次数次数;典型的典型的MapReduce过程过程。
10MapReduce编程模型编程模型WordCount11MapReduce编程模型编程模型WordCountInput:
一系列一系列key/value对对用户提供两个函数实现用户提供两个函数实现:
map(k,v)list(k1,v1)reduce(k1,list(v1)v2(k1,v1)是中间是中间key/value结果对结果对Output:
一系列一系列(k2,v2)对对12MapReduce编程模型编程模型WordCountmap(key,value):
/key:
documentname;value:
textofdocumentforeachwordwinvalue:
emit(w,1)reduce(key,values):
/key:
aword;values:
aniteratorovercountsresult=0foreachcountvinvalues:
result+=vemit(key,result)13MapReduce编程模型编程模型MapReduce将将作业作业的整个运行过程分为两个阶段的整个运行过程分为两个阶段:
Map阶段和阶段和Reduce阶段阶段Map阶段由一定数量的阶段由一定数量的MapTask组成组成输入数据格式解析输入数据格式解析:
InputFormat输入数据处理输入数据处理:
Mapper数据分组数据分组:
PartitionerReduce阶段由一定数量的阶段由一定数量的ReduceTask组成组成数据远程拷贝数据远程拷贝数据按照数据按照key排序排序数据处理数据处理:
Reducer数据输出格式数据输出格式:
OutputFormatEditedbyFoxitReaderCopyright(C)byFoxitSoftwareCompany,2005-2008ForEvaluationOnly.14MapReduce编程模型编程模型内部逻辑内部逻辑Split0Split1Split2Split3MapperRead(Inputformat)MapperRead(Inputformat)MapperRead(Inputformat)MapperRead(Inputformat)a1b1Partitionerc1c1Partitionera1c1Partitionerb1b1PartitionerShuffle&Sorta1a1Reducerb1b1Reducerb1c1c1Reducerc1Part-0Part-1Part-2Map阶段阶段Write(Outputformat)Write(Outputformat)Reduce阶段阶段Shuffle&SortShuffle&SortHDFSHDFSMapTaskReduceTaskWrite(Outputformat)15MapReduce编程模型编程模型外部物理结构外部物理结构16MapReduce编程模型编程模型InputFormat文件分片(文件分片(InputSplit)方法方法处理跨行问题处理跨行问题将分片数据解析成将分片数据解析成key/value对对默认实现是默认实现是TextInputFormatTextInputFormatKey是行在文件中的偏移量是行在文件中的偏移量,value是行内容是行内容若行被截断若行被截断,则读取下一个则读取下一个block的前几个字符的前几个字符17MapReduce编程模型编程模型Split与与BlockBlockHDFS中最小的数据存储单位中最小的数据存储单位默认是默认是64MBSpitMapReduce中最小的计算单元中最小的计算单元默认与默认与Block一一对应一一对应Block与与SplitSplit与与Block是对应关系是任意的是对应关系是任意的,可由用户控制可由用户控制18MapReduce编程模型编程模型InputFormatEditedbyFoxitReaderCopyright(C)byFoxitSoftwareCompany,2005-2008ForEvaluationOnly.19MapReduce编程模型编程模型Combiner20MapReduce编程模型编程模型CombinerCombiner可做看可做看localreducer合并相同的合并相同的key对应的对应的value(wordcount例子例子)通常与通常与Reducer逻辑一样逻辑一样好处好处减少减少MapTask输出数据量(磁盘输出数据量(磁盘IO)减少减少Reduce-Map网络传输数据量网络传输数据量(网络网络IO)如何正确使用如何正确使用结果可叠加结果可叠加Sum(YES!
),Average(NO!
)21MapReduce编程模型编程模型PartitionerPartitioner决定了决定了MapTask输出的每条数据输出的每条数据交给哪个交给哪个ReduceTask处理处理默认实现默认实现:
hash(key)modRR是是ReduceTask数目数目允许用户自定义允许用户自定义很多情况需自定义很多情况需自定义Partitioner比如“比如“hash(hostname(URL)modR”确保相同域确保相同域名的网页交给同一个名的网页交给同一个ReduceTask处理处理22MapReduce编程模型编程模型Map阶段阶段InputFormat(默认(默认TextInputFormat)MapperCombiner(localreducer)PartitionerReduce阶段阶段ReducerOutputFormat(默认(默认TextOutputFormat)主要内容主要内容MapReduce概述概述1MapReduce编程模型编程模型2MapReduce基本架构和原理基本架构和原理3MapReduce程序设计程序设计424MapReduce1.0架构架构25MapReduce1.0(分布式计算框架(分布式计算框架)Master管理所有管理所有作业作业将作业分解成一系列将作业分解成一系列任务任务将任务指派给将任务指派给TaskTracker作业作业/任务监控任务监控、错误处理错误处理等等JobTrackerTaskTrackersSlave运行MapTask和ReduceTask与JobTracker交互,执行命令,并汇报任务状态26MapReduce1.0(分布式计算框架(分布式计算框架)Map引擎引擎解析每条数据记录解析每条数据记录,传递给传递给用户编写的用户编写的map()将将map()输出数据写入本地输出数据写入本地磁盘(如果是磁盘(如果是map-only作业作业,则直接写入则直接写入HDFS)MapTaskReduceTaskReduce引擎从MapTask上远程读取输入数据对数据排序将数据按照分组传递给用户编写的reduce()27MapReduce2.0架构架构MRAppMstrMRAppMstrNodeManagerMapTaskMapTaskNodeManagerReduceTaskReduceTaskClientClient1Container2245MapTaskMapTask7775ResourceSchedulerApplicationsManagerContainerContainerContainerResourceManager3,8666EditedbyFoxitReaderCopyright(C)byFoxitSoftwareCompany,2005-2008ForEvaluationOnly.28MapReduce2.0架构架构Client与与MapReduce1.0的的Client类似类似,用户通过用户通过Client与与YARN交互交互,提交提交MapReduce作业作业,查询作业运行状态查询作业运行状态,管理作管理作业等业等。
MR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MapReduce 应用 场景 原理 基本 架构 使用方法