繁体   English   中英

Hive比Spark更快吗?

[英]Is Hive faster than Spark?

阅读什么是蜂巢后,它是一个数据库吗? 一位同事昨天提到他能够过滤掉一张15B的桌子,在做了一个“分组”之后加入另一张桌子,结果只有10分钟就产生了6B记录! 我想知道这在Spark中是否会变慢,因为现在使用DataFrames,它们可能具有可比性,但我不确定,因此这个问题。

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

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

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

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

因此,比较Hive on tez vs Hive on spark。 下面讨论这个好文章什么时候使用Tez VS在Hive上使用ETL何时使用Spark ETL? (如果不确定,请使用Hive on spark)。

基准信息

越低越好

Spark非常方便,但在SQL性能方面并不能很好地处理扩展。

Hive对共同分区的连接有着惊人的支持。 当您加入的表格有数亿到数十亿行时,您将非常感谢精细的连接支持:

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

Hive对metadata-only queries提供了广泛的支持:自2.1以来,Spark只有一丝亮点

当分区数超过10K +时,Spark会快速耗尽。 Hive不受此限制。

快进到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系统:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM