`

第三章 MapReduce计算模型

 
阅读更多

 

 

 

3.1 为什么用MapReduce

分布式+海量数据

 

3.2 MapReduce计算模型

JobTracker,用户管理和调度工作

TaskTracker,用于执行工作

Job,每个个MapReduce任务被初始化为一个Job,每个Job又分为两个阶段,分别用Map函数和Reduce函数表示这两个阶段

InputSplit,存储的不是数据本身,而是一个分片长度和一个记录数据位置的数据

 

新的API包为org.appache.hadoop.mapreduce,旧API包为org.appache.hadoop.mapred

新/旧版API区别:

1、新,Mapper/Reducer为类,方便扩展,旧,Mapper/Reduce为接口

2、新API中广泛使用Context对象,并使用MapContext进行MapReduce间的通信

3、Job的配置统一由Configuration完成

4、Job类负责Job的控制,JobClient类被删除

 

WordCount程序执行流程图

1、按照TextInputFormat被处理成两个InputSplit,然后输入到两个Map中,Map程序会读取InputSplit指定位置的数据,然后交由Map函数处理

2、处理后的数据写入到本地磁盘,而不是HDFS,Map的数据在Job完成后可以删除

3、Reduce读取Map的输出作为自己的输入,合并value然后写入HDFS 

参照图3-2来对照图3-3WordCount程序


 

简单控制流:JobTracker调度任务给TaskTracker,TaskTracker执行任务时会把进度返回给JobTracker,JobTracker会记录进度的进行状况,如果某个TaskTracker上任务失败,JobTracker会把这个任务分配给另一个TaskTracker,知道任务完成。

 

3.3 MapReduce任务的优化

1、任务调度

优先将任务分配给空闲的机器,尽量将Map任务分配给InputSplit所在的机器,减少网络I/O消耗

2、数据预处理与InputSplit大小

MapReduce擅长处理少量大数据,不擅长处理大量小数据。在提交MapRedcue任务前可以先对数据进行一次预处理,将数据合并为少量大数据。一个block作为一个InputSplit,合理的设置block块大小。一个Map任务在一分钟左右比较合适

3、Map和Reduce任务的数量

Map/Reduce任务槽,是这个集群能够同时运行Map/Reduce任务的最大数量。例如:1200台的集群,设置每台机器可以运行10个Map任务,5个Reduce任务,这个集群的Map任务槽书为12000,Reduce任务槽为6000。一般Reduce任务数量是Reduce任务槽数的0.95或1.75倍,0.95时,如果一个Reduce任务失败,可以迅速找到一台空闲的机器重新运行这个任务,1.75时,执行速度快的机器可以获得更多的Reduce任务。

4、Combine函数

这是一个本地合并函数,WordCount程序中,词频最高的可能是“the”,每个Map任务肯那个产生千万个<the,1>记录,这些记录如果一一的传递给Reduce任务将会很耗时。可以通过Combine函数合并这些数据,减少网络I/O操作。可以使用Combine函数计算出这个block块中“the”的数量。



 5、压缩

可以选择对Map的输出或最终的输出进行压缩

6、自定义comparator

实现自定义类型时,自定义comparator来进行二进制流的比较,省去数据的反序列化

 

3.4 Hadoop流

 通过流的方式Hadoop可以支持任何语言编写Map/Reduce函数

P49

 

3.5 Hadoop Pipes

在Hadoop上运行C++程序的方法, Hadoop的流使用的是标准的输入/输出,Pipes使用的是Sockets

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 581.5 KB
  • 大小: 555.1 KB
  • 大小: 209.8 KB
分享到:
评论

相关推荐

    研究论文-基于MapReduce的大规模图挖掘并行计算模型.pdf

    基于MapReduce框架的集群系统,提出了1种新的计算模型用于大规模图形的3-clique计算,来实现图挖掘. 计算的基本步骤是:首先获取每个节点的第1跳信息,然后是第2跳信息,最后得到所有基于该节点的3-clique. 该计算...

    基于MapReduce的大规模图挖掘并行计算模型 (2012年)

    基于MapReduce框架的集群系统,提出了1种新 的计算模型用于大规模图形的3-clique计算,来实现图挖掘. 计算的基本步骤是:首先获取每个节点的第1跳信息,然 后是第2跳信息,最后得到所有基于该节点的3-clique. 该计算模型...

    Hadoop平台的MapReduce模型性能优化研究

    程序和参数两个层面实现优化的可选项很多,本文在第三章对此作了详细阐述。 Hadoop在管理资源中将内存和CPU两种计算资源捆绑在一起,然后再根据任务类型分为Map Slot和Reduce Slot两种资源模型。这种管理机制实现简单,...

    Mapreduce#文档.docx

    MapReduce 计算模型介绍 1.1. . 理解 MapReduce 思想 MapReduce 思想在生活中处处可见。或多或少都曾接触过这种思想。 MapReduce 的思想核心是“ 分而治之”,适用于大量复杂的任务处理场景(大规模 数据处理...

    Google_MapReduce中文版-系统架构

    的MapReduce计算往往由几千台机器组成、处理以TB计算的数据。程序员发现这个系统非常好用:已 经实现了数以百计的MapReduce程序,在Google的集群上,每天都有1000多个MapReduce程序在执 行。 1、介绍 在过去的5年里...

    Hadoop实战-第2版-陆嘉恒.pdf

    MapReduce计算模型4. MapReduce应用程序5. MapReduce应用案例6. MapReduce工作机制7. Hadoop I/O操作8. 下一代MapReduce: Yarn9. HDFS简介10. HDFS文件结构11. Hive详解12. HBase详解13. Mahout简介14. Pig详解15. ...

    Hadoop实战-第二版-陆嘉恒 (2012版)

    MapReduce计算模型4. MapReduce应用程序5. MapReduce应用案例6. MapReduce工作机制7. Hadoop I/O操作8. 下一代MapReduce: Yarn9. HDFS简介10. HDFS文件结构11. Hive详解12. HBase详解13. Mahout简介14. Pig详解15. ...

    大数据之Mapreduce

    MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程...

    Hadoop实战(陆嘉恒)

    第4-7章深入地讲解了mapreduce计算模型、mapreduce应用的开发方法、mapreduce的工作机制,同时还列出了多个mapreduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了...

    Hadoop实战中文版

    第3~6章分别详细讲解了MapReduce计算模型、MapReduce的工作机制、MapReduce应用的开发方法,以及多个精巧的MapReduce应用案例;第7章全面讲解了Hadoop的I/O操作;第8章对YARN进行了介绍;第9章对HDFS进行了详细讲解...

    Hadoop实战

    第4-7章深入地讲解了mapreduce计算模型、mapreduce应用的开发方法、mapreduce的工作机制,同时还列出了多个mapreduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了...

    《Hadoop实战》试读本(作者:陆嘉恒)

    第4-7章深入地讲解了MapReduce计算模型、MapReduce应用的开发方法、MapReduce的工作机制,同时还列出了多个MapReduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了...

    Hadoop实战-陆嘉恒

    第4-7章深入地讲解了mapreduce计算模型、mapreduce应用的开发方法、mapreduce的工作机制,同时还列出了多个mapreduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了...

    Hadoop实战实战-陆嘉恒(高清完整版)

    《Hadoop实战(第2版)》能满足读者全面学习最新的Hadoop技术及其相关技术(Hive、HBase等)的需求,是一本系统且极具实践指导意义的...第3~6章分别详细讲解了MapReduce计算模型、MapReduce的工作机制、MapRedu...展开

    Python示例-从基础到高手PDF

    第 5 章 python 计算文件的行数和读取某一行内容的实现方法 第 6 章 python 中用 string.maketrans 和 translate 巧妙替换字符串 第 7 章 python linecache 模块读取文件用法详解 第 8 章 python 调用 zabbix 的 ...

    Hadoop实战丛书

    第4-7章深入地讲解了mapreduce计算模型、mapreduce应用的开发方法、mapreduce的工作机制,同时还列出了多个mapreduce的应用案例,涉及单词计数、数据去重、排序、单表关联和多表关联等内容;第8-11章全面地阐述了...

    Hadoop权威指南 第二版(中文版)

    第3章 Hadoop分布式文件系统  HDFS的设计  HDFS的概念  数据块  namenode和datanode  命令行接口  基本文件系统操作  Hadoop文件系统  接口  Java接口  从Hadoop URL中读取数据  通过FileSystem API读取...

    Hadoop权威指南(中文版)2015上传.rar

    第3章 Hadoop分布式文件系统 HDFS的设计 HDFS的概念 数据块 namenode和datanode 命令行接口 基本文件系统操作 Hadoop文件系统 接口 Java接口 从Hadoop URL中读取数据 通过FileSystem API读取数据 写入数据 目录 查询...

    hadoop大数据处理3709937.azw3

    第1章大数据处理概论1.1什么是大数据1.2数据处理平台的基础架构1.3大数据处理的存储1.3.1提升容量1.3.2提升吞吐量1.4大数据...第2章基于Hadoop的大数据处理架构2.1Google核心云计算技术2.1.1并行计算编程模型MapReduce

Global site tag (gtag.js) - Google Analytics