美文网首页我爱编程
spark比hadoop快的原因

spark比hadoop快的原因

作者: 西门无忌 | 来源:发表于2016-11-22 08:12 被阅读0次

Spark 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提供了丰富的算子操作,且reduce操作产生shuffle

数据,可以缓存在内存中。

3、JVM的优化

Hadoop每次MapReduce操作,启动一个Task便会启动一次JVM,基于进程的操作。而Spark每次MapReduce操作是基于线程的,只在启动

Executor是启动一次JVM,内存的Task操作是在线程复用的。

每次启动JVM的时间可能就需要几秒甚至十几秒,那么当Task多了,这个时间Hadoop不知道比Spark慢了多少。

考虑一种极端查询:Select month_id,sum(sales) from T group by month_id;

这个查询只有一次shuffle操作,此时,也许Hive HQL的运行时间也许比Spark还快。

结论:Spark快不是绝对的,但是绝大多数,Spark都比Hadoop计算要快。这主要得益于其对mapreduce操作的优化以及对JVM使用的优化。

相关文章

  • Spark基本架构及原理

    Hadoop 和 Spark 的关系 Spark 运算比 Hadoop 的 MapReduce 框架快的原因是因为...

  • spark比hadoop快的原因

    Spark SQL比Hadoop Hive快,是有一定条件的,而且不是Spark SQL的引擎比Hive的引擎快,...

  • Spark为什么比Hadoop快?

    为什么Spark比Hadoop快时候,得到的答案往往是:Spark是基于内存的计算,而Hadoop是基于磁盘的计算...

  • spark

    Spark比hadoop快的原因 1中间结果基于内存 2dag 3以线程为单位,开销更小(不确定) Sparkco...

  • spark编译

    背景   通常来讲,spark的使用离不开hadoop生态,在spark的官网中已经有针对hadoop通用版本(比...

  • 浅谈大数据Spark技术是否可以替代Hadoop

    用Spark来替代Hadoop的观点在很早以前笔者就有耳闻,其实提出这种观点的原因还是在于Spark和Hadoop...

  • 每天一句话-spark 自定义Hadoop/Hive配置

    使用spark hadoop属性 spark.hadoop.,使用spark hive 属性时 spark.hiv...

  • Spark的安装

    以前看过Hadoop,熟悉Hadoop的具体流程,也看了部分源码,由于Spark比Hadoop高效,想一直看也没来...

  • 数据挖掘之Spark学习

    阅读路线: Hadoop与Spark比较 Spark的安装 Spark知识点 一、Hadoop与Spark比较 简...

  • 大数据入门与实战-Spark上手

    1 Spark简介 1.1 引言 行业正在广泛使用Hadoop来分析他们的数据集。原因是Hadoop框架基于简单的...

网友评论

    本文标题:spark比hadoop快的原因

    本文链接:https://www.haomeiwen.com/subject/xjdppttx.html