美文网首页Hadoop学习
Hadoop MapReduce学习笔记---基础部分

Hadoop MapReduce学习笔记---基础部分

作者: 无羡爱诗诗 | 来源:发表于2018-12-18 17:34 被阅读3次

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设计。

相关文章

网友评论

    本文标题:Hadoop MapReduce学习笔记---基础部分

    本文链接:https://www.haomeiwen.com/subject/jvmlkqtx.html