一、MapReduce程序一般通过键值对的形式来处理数据
Map:(K1,V1)----->List(K2,V2)
Reduce:(K2,List(V2))------>List(K3,V3)
二、数据流动
1、 输入数据通过split的方式,被分发到各个节点上
2、每个Map任务在一个split上面进行处理。
3、Mapper任务输出中间数据
4、在组合过程中(shuffle),节点之间进行数据交换
5、拥有同样key值的中间数据(键值对)被送到同样的reducer任务中
6、reduce执行任务后,输出结果。
注意前四步为Map过程,后两步为Reduce过程
三、MapReduce程序使用的数据类型
由于MapReduce框架需要将数据在集群中进行移动,所以框架定义了一种序列化的键值对类型,即keys和values必须能够进行序列化。所以实现了Writable接口的对象可以充当values,实现了WritableComparalbe<T>接口的对象可以充当keys或values
Hadoop中实现了WritableComparable<T>接口的类有如下几个:
BooleanWritable、ByteWritable、DoubleWritable、FloatWritable、IntWritable、LongWritable、Text、NullWritable。
四:Mapper
Hadoop中的mapper,.必须实现Mapper接口并且继承MapReduceBase类, MapReduceBase类是mappers和reduces类的基类,它包含了构造方法和析构方法。
void configure(JobConf job):提取配置文件或程序中设置的参数值
void close() :任务是关闭数据库连接,关闭文件等等
Mapper接口中map函数的原型
Void map(K1 key,V1 value,OutputCollector<K2,V2> output,Reporter reporter) throws IOException
Hadoop中实现的Mapper接口的常用类
IdentityMapper<K,V>: 实现了Mapper<K,V,K,V> ,直接将map的输入转换为输出。
InverseMapper<K,V> 实现了Mapper<K,V,V,K>,反转键值对。
RegexMapper<K> 实现了Mapper<K,TEXT,TEXT,LongWritable>,为每一个匹配的正则表达式生成一个(match,1)键值对
TokenCountMapper<K> 实现了Mapper<K,TEXT,TEXT,LongWritable>,当输入值被标记,那么生成一个(token,1)键值对
五、Reducer
Hadoop中的mapper,.必须实现Reducer接口并且继承MapReduceBase类
Reducer接口中reduce方法的原型为:
void reduce(K2,key,Iterator<V2> values,
OutputCollector<K3,V3> output,Reporter reporter) throws IOException
Reducer任务接口接收到许多mapper任务传来的数据,首先将数据进行排序,然后根据key值进行分组,最后调用reduce方法
Hadoop中实现的Reducer接口的常用类
IdentityReducer<K,V>:直接将输入转换为输出
LongSumReducer<K> 实现了Reducer<K,LongWritable,K,LongWritable> ,对于同样的key值进行value值的相加。
<!--EndFragment-->
分享到:
相关推荐
MapReduce是一种分布式并行编程模型,最初由Google提出,主要用于处理和生成大规模数据集。Hadoop MapReduce是其开源实现,使得开发者无需深入理解分布式系统细节就能开发分布式应用程序。MapReduce的核心理念是...
MapReduce编程模型就是基于Java实现的,它为大数据处理提供了简洁的编程接口。 六、云计算 Java在云计算领域也有广泛应用,如在Amazon Web Services(AWS)、Google Cloud Platform(GCP)等云平台上,开发者可以...
#### 一、人工智能定义与现状 人工智能(Artificial Intelligence,简称AI)是指由人工制造出来的系统所表现出来的智能行为。自20世纪50年代诞生以来,经历了多次起伏,直到近几十年,随着计算能力的增强、大数据的...
MapReduce已经成为Hadoop框架中用于大数据处理的标准编程模型。 大数据的应用场景非常广泛,包括但不限于互联网企业、金融服务、物流、医疗保健、政府公共管理、智慧城市建设等。阿里集团就是一个典型例子,其业务...
浅谈大数据处理技术架构的演进 大数据处理技术架构的演进是现代IT行业中最重要的研究方向之一。本文将从Hadoop架构的瓶颈到Storm架构的优点,详细讨论大数据处理技术架构的演进过程。 大数据处理技术架构的演进...
MapReduce是Google提出的一种用于大规模数据处理的编程模型,最初应用于搜索引擎的网页索引。MapReduce的核心思想是将大数据集拆分为小数据块,通过Map阶段进行数据预处理,然后在Reduce阶段进行聚合和总结,以完成...
这篇论文《浅谈大数据时代的软件工程技术应用》将深入探讨这个主题。 首先,大数据时代的软件开发强调数据的实时性和准确性。传统的批处理方式已无法应对实时流数据的处理,因此,如Apache Flink、Spark等实时计算...
【分布式存储与计算】\n\n在当今信息化社会,大数据...MapReduce作为其中的代表性模型,为大规模数据处理提供了实用的编程框架。随着技术的发展,分布式计算的应用将更加广泛,对大数据时代的科技创新起到推动作用。
- **优化算法设计**:选择适合并行化的算法,比如MapReduce等分布式计算模型。 #### 六、结论 综上所述,多线程与并行计算已经成为现代软件开发的重要组成部分,尤其是在.NET框架中。通过理解和掌握这些技术,开发...
MapReduce是一种编程模型,用于进行大规模数据集的并行运算。 二、大数据技术在招聘岗位分析中的具体应用 1. 构建大数据平台 招聘岗位信息的采集和存储是大数据应用的第一步。文中提到,通过使用Ambari工具,可以...
1. ** RHadoop**:RHadoop是一组R语言与Hadoop集成的包,如`rmr2`和`rhdfs`,它们允许R语言直接访问HDFS并运行MapReduce任务,实现R语言在Hadoop集群上的大数据分析。 2. **SparkR**:随着Apache Spark的流行,R...
Hadoop的核心组件包括Hadoop Distributed File System(HDFS)和MapReduce编程模型。HDFS能高效地存储大规模数据集,而MapReduce则可以在这些数据上运行处理程序。 除了HDFS和MapReduce,Hadoop生态系统还包括了...
Hadoop是一个开源的大数据处理框架,它的核心包括HDFS(Hadoop Distributed File System)和MapReduce编程模型。HDFS负责高效地存储大量数据,而MapReduce则用于处理和生成大规模数据集的计算模型。Hadoop生态体系还...
对于大数据的并行计算、存储和管理等难题,Hadoop通过其分布式文件系统(HDFS)、MapReduce编程模型等组件提供了解决方案。而OpenStack则是一个开源的云计算平台,提供了包括Nova计算服务、Swift对象存储服务在内的...
MapReduce通过并行编程模型,能够在分布式环境中高效处理大规模数据。它将数据处理任务划分为映射(Map)和化简(Reduce)两个阶段,映射负责数据的过滤和拆分,化简则用于聚合和整合结果。这种设计使得大数据处理...
1. 云计算的基本概念与特征 云计算是一种基于互联网的计算方式,它通过网络将分布式计算资源,如服务器、存储空间、应用程序和服务,动态地提供给用户,实现了资源的按需分配和按需付费。云计算的主要特点包括超大...
2. **Spark**:Apache Spark是另一种高效的大数据处理框架,它在内存中处理数据的速度远超Hadoop MapReduce,因此特别适合实时分析和交互式查询。Spark的普及率迅速上升,很多企业选择将其与Hadoop或Mesos结合使用。...
1. **编程模型**:例如Google的MapReduce,这是一种处理大规模数据集的编程模型。Map阶段将任务分解,Reduce阶段进行数据整合,简化了分布式计算,使得开发者可以专注于业务逻辑,而非底层的并行计算细节。 2. **...
Mapreduce则是一种编程模型,用于处理大量数据。除此之外,还有数据存储技术、大数据分析查询技术以及大数据安全技术等。 大数据存储技术的关键在于分布式文件存储系统,如HDFS(Hadoop Distributed File System)...
编程模型MapReduce面向大规模数据处理的并行计算模型和方法,能够有效地处理大量数据。分布式协作服务ZooKeeper提供了一种可靠的数据管理服务,包括统一命名服务、状态同步服务、集群管理等。 在数据管理和服务方面...