spark为什么比hadoop快
创始人
2024-05-27 07:29:17

网上一堆人根本对计算框架一知半解就出来糊弄人,常见解答有:
spark是基于内存计算,所以快。这跟废话似的,mr计算的时候不也是基于内存?
mr shuffle落盘。这也是胡扯, spark shuffle不落盘?

实际上,如果一个job只有一个map task和reduce task,那么spark并不会比mr快很多。spark快的真正原因是,当一个job具有多个stage时, 我们将这个job表示为[map1,reduce1,map2,reduce2...reducen−1,mapn...][map_1, reduce_1, map_2, reduce_2...reduce_{n-1}, map_n...][map1​,reduce1​,map2​,reduce2​...reducen−1​,mapn​...],那么mr会在每一个reducen−1reduce_{n-1}reducen−1​和mapnmap_nmapn​之间进行一次落盘和一次文件读取,而spark因为可以将窄依赖的算子合并为一个stage(得益于spark的DAG计算机制),所以在reducen−1reduce_{n-1}reducen−1​和mapnmap_nmapn​之间是不涉及落盘的,直接基于内存计算。

举个小例子加深理解,假设一个job涉及两个stage,那么mr和spark的运行过程是这样的:
在这里插入图片描述
可以看到, spark相较于MR而言,少了一次hdfs文件落盘和一次文件读取,如果一个job有nnn个stage,比方说是机器学习算法,那么spark可以节省n−1n-1n−1次文件落盘、读取。因此速度会快很多。

相关内容

热门资讯

猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...