hadoop菜鸟学习笔记--MapReduce笔记

MapReduce处理大数据集的过程是把大数据集分解成为成百上千个小数据集,每个数据集分别由整个HDFS集群中一个节点进行处理并生成中间结果,然后将这些中间结果又由大量的节点合并,形成最终结果。其原理是

1、数据的分布式存储

HDFS和普通的文件系统一据,每一份Block还会复制成数份数据存储到不同的DataNode上,而NameNode成为整个HDFS的核心,它通过维护一些数据结构来记录每一个文件被切割成多少个Block,这些Block可以从那些DataNode中获取,以及各个Datanode的状态。

2、分布式的并行计算

MapReduce结构中关于任务执行有两个样,利用它可以创建目录,创建、复制、删除文件,并且可以查看文件内容,但是在HDFS的底层,被切割成了Block,这些Block被分散的不同的DataNode上面,其外为了备份数相关的节点分别是主节点JobTracker和集群从节点TaskTracker。其中JobTracker是主控负责把Map任务或是Reduce任务指定给哪个TaskTracker运行,可以运行在任何的计算机上,TaskTracker负责具体执行任务,必须运行在Datanode上面,如果某个TaskTracker出现问题,JobTracker会把其上面运行的Map任务或者是Reduce任务指定给其他的空闲的TaskTracker运行。

3、本地计算

数据存储到那一台计算机上面就有那一台计算机负责这部分数据的计算,减少数据在网络上面传输(数据在网络上传输需要带宽),移动计算比移动数据更经济。

4、任务粒度

把原始大数据集体切割小数据集时,通常使得小数据集小于或者等于HDFS中的一个Block的大小(默认是64MB),这样保证一个小数据在一台计算机上,如果有M个小数据集待处理,就启动M个Map任务(分部在N台服务器上面,他们讲并行运行)。

5、数据分割

M个Map任务产生了M个中间结果,把这些中间结果分成R份(R是事先由Reduce任务的个数),这样每一份中间结果都有一个Reduce函数来处理。

6、数据合并

在对中间结果进行Reduce函数运算前,可以对中间结果中具有相同的key的进行合并,这样可以减少在网络上面传输的数据

7、Reduce

Map任务的中间结果在执行完Combine和Partition之后,以文本形式存储于本地磁盘上。中间结果文件的位置会通知主控的JobTracker。JobTracker再通知Reduce任务到哪一个TaskTracker上取中间结果。

8、任务管道

有R个Reduce任务,就会有R个最终结果。很多情况下这R个最终结果并不需要合并成一个最终结果,因为R个最终结果可能作为另一个计算任务的输入,开始另一个并行计算任务,这也就形成了任务管道。

hadoop-mapreduce-client-core是Hadoop分布式计算框架中的核心模块之一。它主要包含了Hadoop MapReduce的核心功能和API接口,是实现MapReduce编程模型的必备组件。 Hadoop MapReduce是一种用于大规模数据处理的编程模型,其核心思想是将大规模数据集分解成多个较小的数据块,分别在集群中的不同机器上进行处理,最后将结果整合。hadoop-mapreduce-client-core模块提供了与MapReduce相关的类和方法,方便开发者实现自定义的Map和Reduce任务。 具体来说,hadoop-mapreduce-client-core模块包含了以下重要组件和功能: 1. Job:Job表示一个MapReduce任务的定义和描述,包括输入路径、输出路径、Mapper和Reducer等。 2. Mapper:Mapper是MapReduce任务中的映射函数,它负责将输入数据转换成<key, value>键值对的形式。 3. Reducer:Reducer是MapReduce任务中的归约函数,它按照相同的key将所有Mapper输出的value进行聚合处理。 4. InputFormat:InputFormat负责将输入数据切分成多个InputSplit,每个InputSplit由一个Mapper负责处理。 5. OutputFormat:OutputFormat负责将Reducer的输出结果写入指定的输出路径中。 使用hadoop-mapreduce-client-core模块,开发者可以基于Hadoop分布式计算框架快速开发并行处理大规模数据的应用程序。通过编写自定义的Mapper和Reducer,可以实现各种类型的分布式计算,如数据清洗、聚合分析、机器学习等。 总之,hadoop-mapreduce-client-core是Hadoop分布式计算框架中的核心模块,提供了实现MapReduce编程模型所需的基本功能和API接口。使用该模块,开发者可以利用Hadoop的分布式计算能力,高效地处理和分析大规模数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值