Hive比Spark更快吗?

时间:2016-09-09 16:30:59

标签: hadoop apache-spark hive apache-tez bigdata

在阅读What is hive, Is it a database?之后,一位同事昨天提到他能够过滤掉一张15B的桌子,在做了一个“分组”之后将它与另一张桌子连在一起,结果只有10分钟就产生了6B记录!我想知道这在Spark中是否会变慢,因为现在使用DataFrames,它们可能具有可比性,但我不确定,因此问题。

Hive比Spark更快吗?或者这个问题没有意义?对不起,我的无知。

他使用最新的Hive,似乎正在使用Tez。

3 个答案:

答案 0 :(得分:3)

Hive只是一个为MapReduce类型的工作负载提供sql功能的框架。

这些工作负载可以在mapreduce或yarn上运行。

因此,比较Hiz on tez vs Hive on spark。下面讨论这个When to go with ETL on Hive using Tez VS When to go with Spark ETL?的好文章(如果不确定的话,要点击火花上的Hive)。

Benchmark information

降低更好

答案 1 :(得分:2)

Spark 方便但是在SQL性能方面并没有很好地处理扩展。

Hive对共同分区的连接有惊人的支持。当您加入的表格有数亿甚至数十亿行时,您将真正通过以下方式欣赏细粒度的连接支持:

  • 类似distribute bysort by(或cluster by
  • bucketed joins

Hive对metadata-only queries有广泛的支持:Spark自2.1以来只有一点点

当分区数超过10K +时,Spark会快速耗尽。 Hive没有受到这种限制。

答案 2 :(得分:0)

快速展望到2018年,根据以下文章,Hive比SparkSQL更快(并且更稳定),尤其是在并发环境中:

https://mr3.postech.ac.kr/blog/2018/10/31/performance-evaluation-0.4/

本文比较了使用TPC-DS基准(1TB,3TB,10TB)和三个群集(11个节点,21个节点,42个节点)的几种SQL-on-Hadoop系统:

  • HDP(Hortonworks数据平台)2.6.4中包含的Hive-LLAP
  • HDP 3.0.1中包含的Hive-LLAP
  • Presto 0.203e(启用了基于成本的优化)
  • Presto 0.208e(启用了基于成本的优化)
  • HDP 2.6.4中包含的SparkSQL 2.2.0
  • HDP 3.0.1中包含的SparkSQL 2.3.1
  • Hive 3.1.0在Tez之上运行
  • HDP 3.0.1中包含的Tez上的Hive
  • Hive 3.1.0在MR3 0.4之上运行
  • Hive 2.3.3在MR3 0.4之上运行

因此,与基于Hive的系统和Presto相比,SparkSQL非常慢,并且无法在并发环境中扩展。 (请注意,实验使用的是运行在原始Spark上的SparkSQL。)