3.1 MapReduce基础
任务的分解与结果的汇总。
MapReduce框架负责分布式存储、工作调度、负载均衡、容错处理、网络通信.....复杂的任务有框架完成。
MapReduce集群行为:
1、任务调度与执行
MapReduce任务有JobTracker和TaskTracker两类节点控制。JT负责调度和管理TJ,TJ负责任务的并行计算。TaskTracker必须运行在DataNode上,DN即是数据节点,也是计算节点。
2、本地计算
“移动计算比移动数据更经济”!把计算节点和数据节点置于同一个节点上,这种方式减少了网络开销。split通常应小于或等于HDFS数据块大小,保证split不会跨越两台计算机存储。
3、Shuffle过程
Mapper的数据结果按照key划分为R(预先设定的Reducer数量)份,划分使用哈希函数,hash(key) mod R,保证一个范围内的key一定有某个Reduce处理
4、combine
将中间结果拥有相同key值的一组数据进行合并,合并后为<key,list<value>>。Combine是Mapper的一部分,在map函数后shuffle之前执行。保证combine执行多次,得到的结果应该是一样的。
5、读取中间结果
完成combine和shuffle后,通知JobTracker中间结果文件的存放位置,JK告诉Recuer到哪个Mapper节点上取数据。Mapper的输出结果写道本地磁盘,不是HDFS,Reducer结束后数据被删除。
6、任务管道
R个Reducer会产生R个结果,这个R结果可能被当成另一计算任务的输入,并开始另一个MapReduce任务。
3.2 样例分析:单词计数
3.3 MapReduce
Map任务和Reduce任务执行时必须获得一个slot才能继续,否则只能等待,执行完成后释放slot。
slot分为Map Slots和Reduce Slots,分别对应可执行的Mapper数和Reducer数,mapred-site.xml可以设置。
3.4 倒排索引
P74
相关推荐
Hadoop+Spark大数据技术(微课版)曾国荪、曹洁版思维导图第三章 MapReduce分布式计算框架 (核心思想:“分而治之”)
编写MapReduce程序涉及Mapper、Reducer和Driver三个部分: 1. Mapper:自定义Mapper类,实现map()方法,处理输入数据并生成中间键值对。 2. Reducer:自定义Reducer类,实现reduce()方法,对Mapper输出的中间键值对...
7. 第三章 MapReduce离线式批量数据处理引擎(一) 8. 第三章 MapReduce离线式批量数据处理引擎(二) 9. 第三章 MapReduce离线式批量数据处理引擎(三) 10. 第三章 MapReduce离线式批量数据处理引擎(四) 11. 第...
MapReduce编程模型篇第3章 MapReduce编程模型3.1 MapReduce编程模型概述3.1.1 MapReduce编程接口体系结构3.1.2 新旧MapReduce API比较3.2 MapReduce API基本概念3.2.1 序列化3.2.2 Reporter参数3.2.3 回调...
对于Hadoop来说,MapReduce模型主要分为三个部分:Map(映射)、Shuffle(洗牌)和Reduce(归约)。它提供了一个简单而强大的接口,用户只需编写Map函数和Reduce函数,就能实现大规模并行运算。 4.1.1 MapReduce...
《大话云计算》是一本关于云计算的幽默科普读物,内容涉及云计算的方方面面。从云计算的产生背景、发展历史、基本概念、关键技术,到云计算的困境、未来、应用领域,再到国内外云计算的发展现状.
### 高级软件人才培训专家-Hadoop课程资料-3-第三章 - MapReduce & YARN入门 #### 知识点一:分布式计算概述 - **定义**:分布式计算是一种计算模型,它通过网络将任务分配到多台计算机上并行处理,以提高计算效率...
第3章:Map阶段 此章专注于Map任务的执行过程,包括输入分片、Mapper类的编写、键值对的分区与排序等关键步骤。读者将了解到如何自定义Mapper类以处理特定的数据转换,并理解Map输出的中间键值对是如何被分区和排序...
MapReduce是Hadoop生态系统中的核心处理模块,它是一种分布式计算框架,特别适合处理和分析海量数据。这个框架的灵感来源于函数式编程中的map和reduce概念,最初由Google在2004年提出,随后在Hadoop中得到广泛应用。...
第三章 MapReduce分布式离线批处理和Yarn资源协调 3.1_MapReduce和Yarn基本介绍-MapReduce和Yarn功能与架构 3.2_Yarn的资源管理和任务调度-增强特性 第四章 Spark2x基于内存的分布式计算 4.1_Spark概述-Spark原理...
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程...
- **第3章:MapReduce算法设计** 探讨了如何设计有效的MapReduce算法,包括局部聚合、配对与条纹化、相对频率计算、二次排序、关系连接等技术。 - **第4章:用于文本检索的倒排索引** 讨论了如何构建和优化倒排...
Map 含义是映射,将要操作的每个元素映射成一对键和值,Reduce 含义是归约,将要操作的元素按键做合并计算,Shuffle 在第三节详细介绍。 在 Map 阶段,将每个图形映射成形状(键Key)和数量(值Value),每个形状...
MapReduce 编程模型和分布式计算框架 MapReduce 是一种面向大规模数据并行处理的编程模型,也是一种并行分布式计算框架。它主要由两个处理阶段:Map 阶段和 Reduce 阶段,每个阶段都以键值对作为输入和输出,键值对...
第三章 HDFS操作 第四章 HDFS的JavaAPI操作和MapReduce入门 第五章 MapReduce的WordCount案例和分区 第六章 MapReduce的排序和序列化 第七章 MapReduce的运行机制和join操作 第八章 MapReduce的其他操作和yarn 第九...
第1章 阅读源代码前的准备/ 2 1.1 准备源代码学习环境/ 2 1.1.1 基础软件下载/ 2 1.1.2 如何准备windows环境/ 3 1.1.3 如何准备linux环境/ 6 1.2 获取hadoop源代码/ 7 1.3 搭建hadoop源代码阅读环境/ 8 1.3.1...
程序和参数两个层面实现优化的可选项很多,本文在第三章对此作了详细阐述。 Hadoop在管理资源中将内存和CPU两种计算资源捆绑在一起,然后再根据任务类型分为Map Slot和Reduce Slot两种资源模型。这种管理机制实现简单,...
3. 提高了数据共享:YARN 可以实现数据共享,提高了数据的利用率。 4. 提高了系统的可扩展性:YARN 可以轻松地实现系统的扩展和升级。 MapReduce 是一种广泛应用于大数据处理的编程模型,而 YARN 是一种通用资源...