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

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将代码和配置信息到本地;

分别为每一个Task启动JVM运行任务

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MapReduce分布式编程模型是一种用于处理大规模数据的编程模型。在MapReduce中,任务被分为两个主要阶段:映射(mapping)和归约(reducing)。映射阶段将输入数据划分为多个片段,并将每个片段映射为键值对。归约阶段将相同键的值进行合并和处理。在MapReduce中,splitting和shuffling操作由框架自动实现,而我们需要自己编程实现的是mapping和reducing操作。这种模型的核心思想是“分而治之”,适用于大规模数据处理场景。\[1\]\[2\] 在MapReduce中,还有两个重要的概念:combiner和partitioner。combiner是在映射阶段之后,在数据传输到归约阶段之前进行的一个可选操作,用于在映射节点上进行局部归约,以减少数据传输量。partitioner是用于将映射输出的键值对按照键的不同进行分类,将相同键的数据分配给对应的归约节点。partitioner可以根据需求进行自定义实现。\[1\]\[3\] 总结来说,MapReduce分布式编程模型是一种用于处理大规模数据的编程模型,它将任务分为映射和归约两个阶段,并通过自动实现的splitting和shuffling操作来处理数据。在实际应用中,我们可以使用combiner和partitioner来优化计算过程。 #### 引用[.reference_title] - *1* *3* [分布式计算框架——MapReduce](https://blog.csdn.net/mxk4869/article/details/125600247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MapReduce分布式计算](https://blog.csdn.net/qq_43528451/article/details/114419976)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值