Hadoop MapReduce的作用
基于Hadoop MapReduce软件框架可以轻松编写应用程序,并且以可靠、容错的方式在由商用机器组成的数千个节点的大型集群上并行处理TB量级的数据集。
MapReduce运行在何处
通常,计算节点和存储节点是在一起的,换言之,MapReduce框架和分布式文件系统HDFS运行在相同的节点上。这种配置允许框架在那些已经存好数据的节点上高效地调度任务,这可以使整个集群的网络宽带被高效地利用。
MapReduce计算模型

MapReduce框架使用于大数据计算,这里的大数据计算主要指:大数据管理、大数据分析、大数据清洗等预操作。
(1)HDFS将大文件切分成小文件存储在不同的节点上;
(2)MapReduce在 (1)的基础上再节点上完成小任务的计算后再合并成最终的结果。
(3)一个MapReduce作业(job)通常会把输入的数据切分成独立的数据块(Block),由Map任务(task)以完全并行的方式处理它们。
MapReduce在计算时被分为几个阶段:分片、Map任务、Shuffle任务、Reduce任务、输出;其中要重点注意的是:Hadoop的核心思想是MapReduce,而Shuffle是MapReduce的核心。
Shuffle阶段完成了数据的分区、分组、排序工作;
编写MapReduce应用程序用什么开发语言
Hadoop框架是用java实现的,但是MapReduce应用程序并非必须用java写。
MapReduce工作过程总结
MapReduce从HDFS上获取到指定的Block进行分片后,将分片结果输入Mapper进行Map处理,将结果输出给Shuffle完成分区、分组、排序的计算过程,之后计算的结果会被Reducer按指定业务进一步处理。最终将计算的结果输出到指定的位置。
MapReduce的应用场景
虽然MapReduce很优秀,具有透明性强、易于编程、容易扩展、容错性强、能够处理PB级以上海量的离线数据。
但是,由于它的工作机制有延迟性,对于类似于MySQL在毫秒级或者秒级返回结果的情况达不到要求;其设计特点决定数据源必须是静态的,不能处理动态变化的数据,如流式计算等。
对MapReduce的改进
LATE算法、Mantri、SkewTune、基于RDMA的MapReduce设计。
网友评论