MapReduce架构

MapReduce定义

源自 Google的MapReduce论文

发表于2004年12月
Hadoop MapReduce是Google MapReduce的克隆版

MapReduce特点

易于编程
良好的扩展性
高容错性
适合PB级以上海量数据的离线处理

MapReduce编程模型

一种分布式计算模型框架,解决海量数据的计算问题

MapReduce将整个并行计算过程抽象到两个函数
——>Map(映射):对一些独立元素组成的列表的每一个元素进行指定的操作,可以高度并行。
——>Reduce(化简):对一个列表的元素进行合并。

一个简单的MapReduce程序只需要指定map()、reduce()、input和output,剩下的事由架构完成。
input()——>map()——>reduce()——>output()

这里写图片描述

MapReduce系统架构

这里写图片描述

MapReduce——相关概念

JobTracker负责接收用户提交的作业,负责启动、跟踪任务执行

TaskTracker负责执行由JobTracker分配的任务,管理各个任务在每个节点上的执行情况。

Job,用户的每一个计算请求,称为一个作业。

Task,每一个作业,都需要拆分开了,交由多个服务器来完成,拆分出来的执行单位,就称为任务。

Task分为MapTask和ReduceTask两种,分别进行Map操作和Reduce操作,依据Job设置的Map类和Reduce类

MapReduce——分布式计算框架

这里写图片描述
这里写图片描述

JobTracker与TaskTracker交互

当客户端调用JobTracker来启动一个数据处理作业时,JobTracker会将工作切分,并分配不同的map和reduce任务到集群中的每个TaskTracker上。

这里写图片描述

MapReduce实例——WordCount

问题:

有一批文件(规模为TB级或者PB级),如何统计这些文件中所有单词出现的次数。

方案:

首先,分别统计每个文件中单词出现的次数。

然后,累加不同文件中同一个单词出现的次数。

MapReduce WordCount实例运行

在dfs中创建input目录

[hadoop1@H01 data]$ hadoop fs -mkdir /wc/input

将data中的.data文件拷贝到dfs中的input

[hadoop1@H01 data]$ hadoop fs -put ./*.data /wc/input

查看

[hadoop1@H01 data]$ hadoop fs -ls /wc/input
Found 3 items
-rw-r--r--   1 hadoop1 supergroup         26 2015-10-24 23:42 /wc/input/00.data
-rw-r--r--   1 hadoop1 supergroup         15 2015-10-24 23:42 /wc/input/1.data
-rw-r--r--   1 hadoop1 supergroup        523 2015-10-24 23:42 /wc/input/worldcount.data

运行wordcount

[root@H01 hadoop-1.2.1]# hadoop jar hadoop-examples-1.2.1.jar wordcount /wc/input /wc/output

这里写图片描述

MapReduce基本流程

首先,将数据输入到HDFS,再交给map,map对每个单词进行统计

在map之后reduce之前进行排序

然后,将排好序的数据拷贝并进行合并,合并好的数据交给reduce,reduce再将完成的数据输出回HDFS

这里写图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MapReduce是Hadoop分布式计算框架中的一种编程模型,用于处理大规模数据集。MapReduce架构由两个主要组件构成:Map和Reduce。 Map任务是对数据的并行处理过程,它将输入数据切分成多个小块,然后分配给集群中的多个节点进行并行计算。Map任务会将每个输入数据块转换为键值对,然后将这些键值对传递给Reduce任务。 Reduce任务是对Map任务的输出进行汇总和归约的过程,它将键值对作为输入,然后对相同键的值进行汇总和归约,最终输出结果。 整个MapReduce架构的工作流程如下: 1. 输入数据被切分成多个小块,并分配给集群中的多个节点进行Map任务的并行计算。 2. Map任务将输入数据块转换为键值对,并将这些键值对传递给Reduce任务。 3. Reduce任务对Map任务的输出进行汇总和归约,最终输出结果。 MapReduce架构具有以下特点: 1. 易于扩展和部署:MapReduce架构可以很容易地扩展到数千个计算节点,以处理大量数据,同时保持高性能和高可靠性。 2. 高性能和高效率:MapReduce架构可以并行处理大量数据,从而提高数据处理的速度和效率。 3. 适用于大规模数据处理:MapReduce架构适用于处理大规模数据集,可以在较短的时间内处理大量数据。 综上所述,MapReduce架构是Hadoop分布式计算框架的核心组件之一,它具有易于扩展和部署、高性能和高效率、适用于大规模数据处理等特点,是处理大规模数据集的理想解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值