Hive on Spark VS Spark on Hive

Hive on Spark VS Spark on Hive

两者概述

Hive on Spark

Hive on Spark是由Cloudera发起,由Intel、MapR等公司共同参与的开源项目,其目的是把Spark作为Hive的一个计算引擎,将Hive的查询作为Spark的任务提交到Spark集群上进行计算。通过该项目,可以提高Hive查询的性能,同时为已经部署了Hive或者Spark的用户提供了更加灵活的选择,从而进一步提高Hive和Spark的普及率。

Hive on spark大体与SparkSQL结构类似,只是SQL引擎不同,但是计算引擎都是spark!

Spark on Hive

是Spark通过spark-sql客户端,编写SQL来操作Hive,底层运行的是Spark RDD。

官网对于Hive引擎的概述

链接:https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties

属性名:hive.execution.engine

内容如下:

在这里插入图片描述

大意如下:

Hive执行引擎默认是mr,但在2.0.0版本废弃了,只是由于历史原因,仍然保留mr引擎。

也就是说:

Hive1.X时:主流就是mr;可切换tez,不支持spark

Hive2.X时,不建议使用mr,可切换tez,spark

Hive3.X时,不支持mr。

不同集群对两者的支持现状

大致对比

引擎CDH(6.3.2)HDP(3.1.1)
2.1.13.1.0
mr支持不支持(可以设置,但不能跑任务)
Tez不支持(可以设置,但不能跑任务)支持
Spark支持支持

CDH集群如下:

在这里插入图片描述

Hive 版本为2.1.1

默认引擎:mr

支持切换spark。

不支持tez,虽引擎可设置为tez,但无法跑任务。

HDP集群如下:

在这里插入图片描述

Hive版本为3.1.0。

默认是tez,支持切换为Spark。

不支持mr引擎。

两者在工作中如何实现

Hive on Spark

  • 如上截图所示,直接切换底层引擎即可。

Spark on Hive

  • 就是通过sparksql,加载hive的配置文件,获取到hive的元数据信息
  • spark sql获取到hive的元数据信息之后就可以拿到hive的所有表的数据
  • 接下来就可以通过spark sql来操作hive表中的数据

综述

1.Hive on Spark是由Cloudera牵头,后期开发的,因此比Spark on Hive要晚出现。

2.Hive on Spark效率要低于Spark on Hive。

前者只有计算引擎是Spark,前期解析,转换,优化等步骤都是Hive完成。

后者只有元数据用了Hive,对SQL的解析,转换,优化等都是Spark完成。

e。

前者只有计算引擎是Spark,前期解析,转换,优化等步骤都是Hive完成。

后者只有元数据用了Hive,对SQL的解析,转换,优化等都是Spark完成。

3.至于选择Hive on Spark还是Spark on Hive,不能仅凭效率来决定,还要考虑公司技术储备和业务等多方面因素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值