为什么Spark比Hadoop快

编程入门 行业动态 更新时间:2024-10-21 09:49:05

为什么<a href=https://www.elefans.com/category/jswz/34/1769717.html style=Spark比Hadoop快"/>

为什么Spark比Hadoop快

park SQL比Hadoop Hive快,是有一定条件的,而且不是Spark SQL的引擎比Hive的引擎快,相反,Hive的HQL引擎还比Spark SQL的引擎更快。
其实,关键还是在于Spark 本身快。那么Spark为什么快呢?

1、消除了冗余的HDFS读写
Hadoop每次shuffle操作后,必须写到磁盘,而Spark在shuffle后不一定落盘,可以cache到内存中,以便迭代时使用。如果操作复杂,很多的shufle操作,那么Hadoop的读写IO时间会大大增加。

2、消除了冗余的MapReduce阶段
Hadoop的shuffle操作一定连着完整的MapReduce操作,冗余繁琐。而Spark基于RDD提供了丰富的算子操作,且action操作产生shuffle数据,可以缓存在内存中。

3、JVM的优化
Hadoop每次MapReduce操作,启动一个Task便会启动一次JVM,基于进程的操作。而Spark每次MapReduce操作是基于线程的,只在启动Executor时启动一次JVM,内存的Task操作是在线程复用的。
每次启动JVM的时间可能就需要几秒甚至十几秒,那么当Task多了,这个时间Hadoop不知道比Spark慢了多少。
总结:Spark比Mapreduce运行更快,主要得益于其对mapreduce操作的优化以及对JVM使用的优化。

Spark快不是绝对的,但是绝大多数Spark都比Hadoop计算要快。
考虑一种极端查询:Select month_id,sum(sales) from T group by month_id;这个查询只有一次shuffle操作,此时,也许Hive HQL的运行时间也许比Spark还快。

【实际开发中如何选择】
因为大数据一般都是面临数据量非常大的计算,如果是在金融等行业,对数据的可靠性要求非常严格,则选用MR作为底层计算引擎,为的是数据都会进行落盘操作,比较稳定。对数据的可靠性要求一般,但是对数据运算的时效性有要求的,可以选用hive on Spark 或者Spark。

更多推荐

为什么Spark比Hadoop快

本文发布于:2024-02-12 03:50:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1685756.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Spark   Hadoop

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!