MapReduce计算模型
2021/9/26 23:13:01
本文主要是介绍MapReduce计算模型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- Hadoop的主要执行(计算)框架
- 大而化小、异而化同
- 每个阶段都是用键值对作为输入和输出
- Job = Map + Reduce
- 通过map和reduce两个操作实现了并行分布式计算框架,mapreduce的中间计算结果需要存储在HDFS的磁盘中,频繁访问磁盘极大降低了数据处理的效率;Mapreduce只提供map和reduce两个操作,大量的操作需要开发者重写代码来实现,实现成本较高
PC机分为三类:
- Master(负责调度,相当于工地的工头)
- Worker(相当于干活的工人)
- Mapper(处理任务)
- Reducer(汇总工作)
举例来说,统计一系列文档中的词频。文档数量规模很大,有1000万个文档,英文单词的总数可能只有3000(常用的)。
那么input M=10000000,output N=3000。于是,我们搞了10000个PC做Mapper,100个PC做Reducer。每个Mapper做1000个文档的词频统计,统计之后把凡是和同一个word相关的统计中间结果传给同一个Reducer做汇总。比如某个Reducer负责词表中前30个词的词频统计,遍历10000个PC,这10000个Mapper PC把各自处理后和词表中前30个词汇相关的中间结果都传给这个Reducer做最终的处理分析。
缺陷:
第一,一个Map Reduce任务只有Map和Reduce两个阶段,复杂的计算需要大量的Job共同完成,Job之间的依赖关系需要由开发者自己管理,这增加了开发者的研发难度。
第二,Hadoop在进行Map Reduce计算的过程中,会将map的计算结果写入到本地磁盘或Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)上,然后再通过shuffle过程将计算结果发送到reduce上进行处理,反复的磁盘读写使Hadoop不能够满
足低延迟的交互式数据挖掘任务的要求。
第三,时间延迟高,Reduce Task需要等待所有Map Task都完成后才可以开始
这篇关于MapReduce计算模型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-12深入理解 ECMAScript 2024 新特性:Map.groupBy() 分组操作
- 2025-01-11国产医疗级心电ECG采集处理模块
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势