为什么分布式计算框架都逃不出MapReduce的“影子“?3个进化方向你必须看懂

大家好,我是大头,职高毕业,现在大厂资深开发,前上市公司架构师,管理过10人团队!
我将持续分享成体系的知识以及我自身的转码经验、面试经验、架构技术分享、AI技术分享等!
愿景是带领更多人完成破局、打破信息差!我自身知道走到现在是如何艰难,因此让以后的人少走弯路!
无论你是统本CS专业出身、专科出身、还是我和一样职高毕业等。都可以跟着我学习,一起成长!一起涨工资挣钱!

为什么分布式计算框架都逃不出MapReduce的“影子”?3个进化方向你必须看懂

之前,我们已经从0-1设计并实现过一个基于Golang的MapReduce系统了,当然,我们实现的系统还有一些缺陷,今天,我们就来看一下这些开源的基于MapReduce升级版的系统。他们的设计思想,优化点是哪些。

凌晨3点,数据平台报警:某金融风控模型训练任务卡死,团队一边排查Hadoop集群,一边感叹——“怎么还是老掉牙的MapReduce?”
其实,不管是Spark、Storm还是Flink,你会发现它们的底层设计都绕不开MapReduce。但为什么这些新框架还要不断“改造”前辈?到底有哪些局限被突破,又有哪些坑依然存在?这篇文章,我就带你拆解分布式计算框架的技术谱系和演进逻辑。

问题的本质:MapReduce到底解决了什么,又卡在哪儿?

首先,我们需要明白MapReduce为什么是基石,它凭什么坚定了以后的分布式计算的基础。因为它把分布式计算最难啃的几块骨头——编程抽象、容错机制、数据本地性、自动并行化——都做到了极致:

  • 编程抽象:只需写好map和reduce两个函数,剩下复杂度全交给系统。
  • 容错机制:任务级别自动重试,不怕节点挂掉。
  • 数据本地性:让计算主动靠近数据,减少网络传输。
  • 自动并行化:开发者不用关心分片、调度等细节。

但用过的人都知道,这套模式也有硬伤,毕竟是04年发表的论文,到现在已经过去很久了,技术的日新月异,导致当时看来很厉害的技术,现在已经过时了:

  • 磁盘I/O瓶颈:每轮任务都要落盘,中间结果反复读写磁盘,性能拉胯。
  • 批处理导向:只能做离线大批量处理,对实时/流式场景无能为力。
  • 编程灵活性差:只有两种操作(map/reduce),复杂逻辑很难表达。
  • 迭代效率低下:比如机器学习算法,每次迭代都得重新读写磁盘,非常慢。

说实话,这些痛点直接催生了后续所有主流分布式计算框架。

有次我们广告CTR模型训练,用MapReduce跑了一晚上还没动静,同事直接开喷:“这TM也太慢了吧!”

技术方案解析

Apache Spark——内存计算革命

Spark就是主要解决了MapReduce中的磁盘IO问题,因为MapReduce每次都是写入和读取磁盘,我们知道,磁盘的速度是远远低于内存的。

Spark的核心创新就是RDD弹性分布式数据集,可以.cache()到内存,再也不用反复读写HDFS。

val rdd = sc.textFile("hdfs://...")
  .flatMap(_.split(" "))
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值