淘宝数据平台团队给出的分析过程
http://www.tbdata.org/archives/1470
比较全面。
这里还要注意的是关于combiner,设置combiner函数后整个mapreducer过程中其实有三处地方会调用到。
第一处是map端数据从内存spill到文件的时候,这个时候会在环形缓冲区中进行分区及key的排序,然后调用combiner函数来压缩写入文件的数据量,调用过后再溢写到spill文件中。
第二处地方是多个spill文件合并为最终的map输出文件,这个时候首先会去校验spill次数,默认为3(个人觉得此处默认为2可能更合适),如果spill次数大于三次就发生combiner。
第三处则发生在reducer端,当数据从reducer端的内存中溢写到中间文件的时候也会发生调用。
从这三处调用中可以很明显的看出只要发生内存到文件的溢写,就会调用combiner,combiner函数的作用就是压缩数据,减少数据流量,以CPU换IO,跟compress本质上是一样的。
所以尽量避免在combiner函数中引入过多的逻辑层面计算,第一是因为combiner调用的次数不可控,其次是combiner函数本身的作用与reducer是毫不相同的。
分享到:
相关推荐
MapReduce模型将复杂的数据处理过程分解为两个阶段:Map(映射)和Reduce(归约)。简单来说,Map阶段对数据集中的数据进行处理,产生中间键值对集合;Reduce阶段则对中间数据进行汇总处理。 在“MapReduce数据分析...
本节通过单词计数实例来阐述采用 MapReduce 解决实际问题的基本思路和具体实现过程。 设计思路 首先,检查单词计数是否可以使用 MapReduce 进行处理。因为在单词计数程序任务中,不同单词的出现次数之间不存在...
《MapReduce2.0源码分析与实战编程》是一本深度探讨Hadoop生态系统中的核心组件MapReduce 2.0(也称为YARN)的专著。MapReduce是大数据处理领域的重要框架,它提供了并行计算的能力,使得海量数据的处理变得高效可行...
《MapReduce2.0源码分析与实战编程》是一本深度解析Hadoop MapReduce框架的书籍,其中包含详细的源码注释,旨在帮助读者深入理解MapReduce的工作原理,并能进行实际编程应用。这本书的重点在于剖析MapReduce的核心...
### MapReduce源码分析知识点详解 #### 一、MapReduce概述 MapReduce是一种高效的数据处理技术,主要用于处理大规模数据集。这一模型最早由Google提出并在其内部广泛应用,后来Google将其核心技术理念发表为学术...
总结,MapReduce的源码分析涵盖了数据分片、Map函数、Shuffle过程、Reduce函数、输入输出格式、任务调度等多个关键部分。理解这些核心组件的工作原理,有助于我们更高效地利用Hadoop MapReduce处理大数据,同时也...
实验内容涵盖了从启动全分布模式的Hadoop集群到编写、运行和分析MapReduce应用程序的全过程。 首先,实验启动了Hadoop集群的所有守护进程,包括NameNode(主节点,负责元数据管理)、DataNode(存储数据的节点)、...
### Hadoop.MapReduce 分析 #### 一、概述 Hadoop.MapReduce 是一种分布式计算模型,主要用于处理大规模数据集。其基本思想源自Google提出的MapReduce论文。本文将深入解析Hadoop.MapReduce的工作原理、核心组件...
总的来说,这个压缩包提供了一个实战性的MapReduce案例,涵盖了从数据处理到结果分析的全过程。通过学习和运行这个项目,不仅可以了解MapReduce的工作机制,还能加深对大数据处理的理解,提升编程技能。
- **数据不变性**:在MapReduce过程中,所有数据元素都是不可变的,这意味着一旦数据被输入,就不能被更新。这种设计有助于简化并行处理过程,避免了数据同步的问题。 - **键值对的使用**:在MapReduce中,数据总是...
Hadoop MapReduce 编程实战 Hadoop MapReduce 是大数据处理的核心组件之一,它提供了一个编程模型和软件框架,用于大规模数据处理。下面是 Hadoop MapReduce 编程实战的知识点总结: MapReduce 编程基础 ...
5. 基于MapReduce的决策树算法的应用:基于MapReduce实现决策树算法可以应用于数据挖掘、机器学习和推荐系统等领域,例如可以用于用户行为分析、推荐系统和风险评估等。 6. 决策树算法在MapReduce中的实现细节:在...
8. 计数模式(Counting with Counters):计数器是MapReduce中用于记录任务执行过程中特定事件次数的机制。它可以用来监控MapReduce作业的性能,例如计算错误数据的数量或特定数据的出现频率。 9. 过滤模式...
在这个"MapReduce项目 数据清洗"中,我们将探讨如何使用MapReduce对遗传关系族谱数据进行处理和清洗,以便进行后续分析。 1. **Map阶段**: 在Map阶段,原始数据被分割成多个小块(split),然后分配到不同的工作...
在这个项目"0324大数据代码与数据_JAVA大数据_文本分析_运用MapReduce做数据分析_"中,我们将深入探讨如何利用Java来实现MapReduce对文本文件的数据处理和分析。 首先,Map阶段是MapReduce的核心部分,它的任务是对...
总结起来,MapReduce提供了一套完整的分布式数据处理方案,它不仅简化了并行编程的过程,还极大地提高了数据处理的速度和效率。通过WordCount程序的具体实现,我们可以更深入地理解MapReduce的工作原理和内部流程。