15 | 分布式计算模式之MR:一门同流合污的艺术
该思维导图由 AI 生成,仅供参考
什么是分而治之?
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了分布式计算领域中的MapReduce(MR)计算模式。MapReduce是一种分而治之的计算模式,通过Map操作将大任务分成多个较小的任务去执行,得到的多个结果再通过Reduce操作整合成一个完整的结果。文章详细解释了MapReduce的抽象模型和工作原理,包括Map和Reduce两个核心阶段的功能和特点,以及MapReduce的组件结构和工作流程。此外,还介绍了MapReduce的实践应用,以电商统计用户消费记录为例,展示了MapReduce的功能和应用场景。另外,文章还介绍了Fork-Join计算模式,与MapReduce类似,也是一种分而治之的计算模式,但适用于单个Java虚拟机上运行。总的来说,本文通过实例和知识扩展,帮助读者快速了解MapReduce计算模式的原理和应用,以及在分布式系统中的重要性和作用。
《分布式技术原理与算法解析》,新⼈⾸单¥59
全部留言(17)
- 最新
- 精选
- xingoo这个批量定义有点模糊。宏观上完整的mapreduce不属于批量,因为最后有个reduce合并操作;但是还要考虑最后reduce要做什么。微观上每个map任务或者shuffle都是并行处理的,此时就可以看做批量任务。
作者回复: 其实这里的批量处理,是指在map阶段,多个子任务之间是没有依赖关系,可以并发处理不同的数据。
2019-10-259 - 小飞侠主要讲了下分而治之的思想,思想比较容易理解,但这只是入了个门,MR作为一个计算框架,里边应该涉及任务的调度,数据的分发,key value 如何选取,多年前做过相关开发,但使用后并没有给我很惊艳的感觉,就是对着API编程,定义好KEY,然后启动任务,研究不够深入,工作上涉及的太少了。
作者回复: 是的,你的理解没错! 我们在物理中学到过能力守恒定律:能量既不会凭空产生,也不会凭空消失,它只会从一种形式转化为另一种形式,或者从一个物体转移到其它物体,而能量的总量保持不变。 其实在计算机科学中也存在类似的定律,我暂且把它叫复杂性守恒的定律或者你也可以把它叫做聂鹏程定律:)“一个问题的复杂性既不会凭空产生,也不会凭空消失,它只会从一种形式转化为另一种形式,或者从一个组件转移到其它组件,而复杂性的总量保持不变。” 当我们在用Hadoop这样的系统,在享受到它们带给我们的简单、便捷的同时,其实是因为Hadoop本身把相应的复杂度给封装起来了。 分而治之的思想虽然简单,但是如果集群规模是10台、100台、1000台、10000台......这样的递增就不简单了。
2019-12-1928 - 小飞侠手机订单统计,任务分解时有问题哦,地市不能只统计top3
作者回复: 这里只是举例方便读者理解,真实情况考虑的维度肯定会更多一些
2019-12-1924 - 王涛联想:分治和归并结合,就是归并排序。归并排序需要递归实现。 “理论模型都是相通的。”
作者回复: 👍👍👍
2020-03-291 - Geek_c5f483看完之后想起来,这应该就是前两年工作中遇到的。。。5分钟数据表、小时数据表、天数据表、月数据表以及年数据表,由于数据量太大,都是通过分而治之的思想拆分写入数据库,业务端用的时候再从对应的表中抽取数据二次处理业务逻辑
作者回复: 👍👍,温故而知新
2020-03-31 - 王涛分治法,解决较大问题的一个通用范式!!!
作者回复: 是的,分而治之的思想和算法应用非常广泛
2020-03-29 - 随心而至可以类比算法中归并排序理解分而治之的思想。2019-10-2614
- Jackey有两个问题想请教老师和各位同学 1. 中间结果一定要落盘吗?如果只在内存中进行排序,再发给reduce是不是在速度上可以得到一个提升? 2. 如果在执行时某个任务特别慢,Hadoop的整个流程都会卡住吧?这里有一些改进方法吗?比如超时舍弃任务? 关于思考题:我认为MR是属于批处理类型的。文中讲到一个大任务拆分成多个子任务,类似的,只要是同质的多个任务,都可以放到MR中处理。如果子任务本身粒度比较细,感觉可以考虑省略“拆分”这一步骤了。2019-10-2561
- 飞机翅膀上发现作者特别喜欢下定义,总是故弄玄虚,其实回归本质有的东西很简单,大白话就可以描述清楚,非要搞一些显得很高级的词语,然后再费劲去解释这个词,不太像一个常年闯荡江湖的武林高手,更像是一个游手好闲的纨绔子弟突然捡到一本武林秘籍,修炼了几天小有所成,然后就自信满满的混迹江湖。2022-04-10
- persecute和面试官聊这些,会不会感觉我是老师,他是学生?2021-08-06