大数据开发:MapReduce应用场景
MapReduce最初进入我们的实现,是作为Hadoop的核心计算引擎,负责分布式计算,也作为编程模型使用。在整个Hadoop生态当中,MapReduce的影响意义是深远的,也是第一代计算框架代表产品。今天的大数据开发学习分享,我们就来讲讲MapReduce应用场景相关的知识。
首先,MapReduce的设计初衷就是为了大规模数据集的批量处理,提升整体的数据处理效率,而MapReduce诞生之初,典型的应用就是使用MapReduce进行长句切割,然后进行词频统计,这也为MapReduce的应用场景埋下了伏笔。
MapReduce的计算流程
简单来说,Mapreduce的运算过程就是进行拆解-排序-汇总,解决的就是统计的问题,使用的思想就是分治的思想。
整个过程就是先读取文件,接着进行split切割,变成一个一个的词,然后进行map task任务,排列出所有词的统计量,接着sorting排序,按照字典序来排,接着就是进行reduce task,进行了词频的汇总,最后一步就是输出为文件。
其中对应着的是Hadoop Mapreduce对外提供的五个可编程组件,分别是InputFormat、Mapper、Partitioner、Reduce和OutputFormat。
MapReduce的应用场景
MapReduce的产生是为了把某些大的问题分解成小的问题,然后解决小问题后,大问题也就解决了。那么一般有什么样的场景会运用到呢?这里据几个非常典型的例子——
计算URL的访问频率
搜索引擎的使用中,会遇到大量的URL的访问,可以使用MapReduce来进行统计,得出(URL,次数)结果,在后续的分析中可以使用。
倒排索引
Map函数去分析文件格式是(词,文档号)的列表,Reduce函数就分析这个(词,文档号),排序所有的文档号,输出(词,list(文档号)),这个就可以形成一个简单的倒排索引,是一种简单的算法跟踪词在文档中的位置。
Top K问题
在各种的文档分析,或者是不同的场景中,经常会遇到关于Top K的问题,例如输出这篇文章的出现前5个最多的词汇。这个时候也可以使用MapReduce来进行统计。
关于大数据开发学习,MapReduce应用场景,以上就为大家做了简单的介绍了。MapReduce虽然在现在的大数据技术生态当中,需要实际编程的任务很少,但是该学还是得学。