大数据学习(24)-spark on hive和hive on spark的区别

&&大数据学习&&

🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门

💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


1)Spark on Hive

Spark on Hive 是Hive只作为存储角色,Spark负责sql解析优化,执行。这里可以理解为Spark 通过Spark SQL 使用Hive 语句操作Hive表 ,底层运行的还是 Spark RDD。具体步骤如下:

通过SparkSQL,加载Hive的配置文件,获取到Hive的元数据信息;

获取到Hive的元数据信息之后可以拿到Hive表的数据;

通过SparkSQL来操作Hive表中的数据。

2)Hive on Spark

Hive on Spark是Hive既作为存储又负责sql的解析优化,Spark负责执行。这里Hive的执行引擎变成了Spark,不再是MR,这个要实现比Spark on Hive麻烦很多, 必须重新编译你的spark和导入jar包,不过目前大部分使用的确实是spark on hive。

Hive默认使用MapReduce作为执行引擎,即Hive on MapReduce。实际上,Hive还可以使用Tez和Spark作为其执行引擎,分别为Hive on Tez和Hive on Spark。由于MapReduce中间计算均需要写入磁盘,而Spark是放在内存中,所以总体来讲Spark比MapReduce快很多。因此,Hive on Spark也会比Hive on MapReduce快。由于Hive on MapReduce的缺陷,所以企业里基本上很少使用了。

Spark on Hive和Hive on Spark的区别主要体现在以下三个方面:

  1. 数据源:Spark on Hive的数据源是Hive,它从Hive中获取数据,然后对数据进行SparkSQL操作。而Hive on Spark的数据源是Hive本身。
  2. 执行引擎:Spark on Hive底层运行的还是Spark RDD。而Hive on Spark则是将Hive查询从MapReduce操作替换为Spark RDD操作。
  3. 实现方式:Spark on Hive通过SparkSQL加载Hive的配置文件,获取Hive的元数据信息,然后就可以获取Hive的所有表的数据,并对其进行SparkSQL操作。而Hive on Spark则需要重新编译Spark和导入jar包才能实现。
相关推荐
小蒋观天下6 分钟前
2026交通安防AI摄像头完整选型指南
大数据·人工智能
Alter123014 分钟前
算力决定下限,存力决定上限:Gartner魔力象限背后的AI存储暗战
大数据·人工智能
吴声子夜歌21 分钟前
Linux命令——查找文件
linux·运维·学习
我命由我1234522 分钟前
Windows 操作系统 - 启用 D 盘虚拟内存
java·运维·服务器·windows·学习·java-ee·运维开发
平头哥技术团队27 分钟前
Day 13 | 调 line-height 和 margin:三处间距让名片页脱离模板感
开发语言·前端·javascript·学习·html5
具身AGI31 分钟前
第一视角数据从哪来,物理AI 人类学习路线 的入口
人工智能·深度学习·学习
cjy0001111 小时前
2026年9月零基础能听懂国内 FDE 讲师的课吗?
大数据·前端·人工智能·fde
Elastic 中国社区官方博客1 小时前
如何通过一条 ES|QL 查询为 Elasticsearch 中的每个指标构建指标图表
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·kibana
百胜软件@百胜软件1 小时前
百胜软件SenClaw胜券助手正式发布:AI让数据“开口说话”,随时赋能零售运营
大数据·人工智能·零售
HZZD_HZZD2 小时前
商业综合体分户计量与能源计费:业态差异、公区分摊与转供电合规
大数据·人工智能·能源