MapReduce(分布式数据计算模型)

MapReduce是一种用于大规模数据集并行计算的编程模型,主要由Hadoop实现。它将计算过程分为Map和Reduce两个步骤,Map对数据集进行预处理生成中间键值对,Reduce则对相同键的值进行整合,适用于处理海量数据。MapReduce采用Master/Slave架构,JobTracker负责任务调度,TaskTracker执行任务。作业调度算法包括FIFO、公平和容量调度器。MapReduce作业运行流程涉及客户端、JobTracker和TaskTracker的交互,以及Map、Reduce任务中的Shuffle和排序过程。
摘要由CSDN通过智能技术生成

MapReduce(分布式数据计算模型)

MapReduce是一种计算模型,用以进行大数据量的计算。Hadoop的MapReduce实现,和Common、HDFS一起,构成了Hadoop发展初期的三个组件。MapReduce将应用划分为Map和Reduce两个步骤,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。

我们知道MapReduce诞生与搜索邻域,主要解决的是海量数据处理扩展性差的问题。

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。它们的主要思想,都是从函数式编程语言里借来的。每次一个步骤方法会产生一个状态,这个状态会直接当参数传进下一步中。而不是使用全局变量。

1、MapReduce框架

MapReduce将复杂的,运行大规模集群上的并行计算过程高度地抽象两个函数:Map和Reduce

MapReduce采用“分而治之”策略,将一个分布式文件系统中的大规模数据集,分成许多独立的分片。这些分片可以被多个Map任务并行处理。

MapReduce设计的一个理念就是“计算向数据靠拢”,而不是“数据向计算靠拢”,原因是,移动数据需要大量的网络传输开销

MapReduce框架采用了Master/Slave架构,包括一个Master和若干个Slave,Master上运行JobTracker,Slave运行TaskTracker,Hadoop框架是用JAVA来写的,但是,MapReduce应用程序则不一定要用Java来写。

JobTracker:初始化作业,分配作业,TaskTracker与其进行通信,协调监控整个作业。

TaskTracker:定期与JobTracker通信,执行Map和Reduce任务。

HDFS:保存作业的数据、配置、jar包、结果。

2、作业调度算法

FIFO调度器(默认)、公平调度器、容量调度器

TaskTracker和JobTracker之间的通信与任务的分配是通过心跳机制完成的;

TaskTracker会主动向JobTracker询问是否有作业要做,如果自己可以做,那么就会申请到作业任务,这个任务 可以使Map也可能是Reduce任务;

TaskTraker将代码和配置信息到本地;

分别为每一个

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值