当前位置: 首页 > article >正文

Spark和Hive的联系

通常来说, Spark Hive 本质上是没有关系的,两者可以互不依赖。但是在企业实际应用中,经常把二者结合起来使用。Spark Hive 结合和使用的方式,主要有以下三种:
1 Hive on Spark
在这种模式下,数据是以 table 的形式存储在 hive 中的,用户处理和分析数据,使用的是 Hive 语法规范的hql。 但 这些 hql ,在用户提交执行时,底层会经过解析编译以 Spark 作业的形式来运行 。(事实上,Hive早期只支持一种底层计算引擎,即 MapReduce ,后期在 Spark 因其快速高效占领大量市场后, Hive 社区才主动拥抱Spark ,通过改造自身代码,支持了 Spark 作为其底层计算引擎。目前 Hive 支持了三种底层计算引擎,即mr Tez Spark 。用户可以通过 set hive.execution.engine=mr/tez/spark 来指定具体使用哪个底层计算引擎。
2 Spark on Hive
Spark 本身只负责数据计算处理,并不负责数据存储。 其计算处理的数据源,可以以插件的形式支持很 多种数据源,这其中也包括 hive 当我们使用 Spark 来处理分析存储在 Hive 中的数据时,这种模式就称 为为 Spark on Hive 。这种模式下,用户可以使用 Spark java/scala/pyhon/r api ,也可以使用 Spark 语法规范的sql ,甚至也可以使用 hive 语法规范的 hql (之所以也能使用 hql ,是因为 Spark 在推广面世之初,就主动拥抱了hive ,通过改造自身代码提供了原生对 hql 包括 hive udf 的支持,这也是市场推广策略的一种吧)。
3 Spark+Spark Hive catalog
这是 Spark Hive 结合的一种新形势,随着数据湖相关技术的进一步发展,这种模式现在在市场上受到了越来越多用户的青睐。其本质是,数据以 orc/parquet/delta lake 等格式存储在分布式文件系统如 hdfs 对象存储系统如 s3 中,然后通过使用 Spark 计算引擎提供的 scala/java/python api Spark 语法规范的 sql 来进行处理 。由于在处理分析时针对的对象是 table ,而 table 的底层对应的才是 hdfs/s3 上的文件 / 对象,所以我们需要维护这种table 到文件 / 对象的映射关系,而 Spark 自身就提供了 Spark Hive catalog 来维护这种table 到文件 / 对象的映射关系。注意这里的 Spark Hive catalog ,其本质是使用了 Hive metasore 相关api来读写表到文件 / 对象的映射关系(以及一起其他的元数据信息)到 metasore db mysql postgresql等数据库中。(由于Spark 编译时可以把 Hive metastore api 等相关代码一并打包到 Spark 的二进制安装包中,所以使用这种模式,我们并不需要额外单独安装hive )。

http://www.kler.cn/a/451784.html

相关文章:

  • Vue开发环境搭建上篇:安装NVM和NPM(cpnm、pnpm)
  • 原点安全再次入选信通院 2024 大数据“星河”案例
  • Linux使用教程及常用命令大全
  • 在跨平台开发环境中构建高效的C++项目:从基础到最佳实践20241225
  • leetcode-80.删除有序数组的重复项II-day12
  • 基于卷积神经网络融合Inception模块的人脸识别
  • 【视觉惯性SLAM:SLAM中常用的数学基础知识】
  • BOM清单在制造企业运营中的全方位作用解析
  • 高并发处理 --- Caffeine内存缓存库
  • 【每日学点鸿蒙知识】私仓搭建、resources创建文件夹、hvigor如何动态设置版本、SM3摘要算法、SP存储报错等
  • 【MySQL】7.0 入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
  • mysql的存储碎片
  • PHP后执行php.exe -v命令报错并给出解决方案
  • AI科学家用大模型自动探索人工生命,近屿智能深耕AI大模型
  • 纯Dart Flutter库适配HarmonyOS
  • 快速汇总Word表格
  • 华三-主动安全
  • 青少年编程与数学 02-004 Go语言Web编程 19课题、API文档
  • windows无法解析目标系统名称
  • C#的单元测试
  • 论文阅读:Deep Fusion Clustering Network With Reliable Structure Preservation
  • 使用VsCode编译调试Neo4j源码
  • 重温设计模式--代理、中介者、适配器模式的异同
  • 两道数组有关的OJ练习题
  • ubuntu使用ffmpeg+ZLMediaKit搭建rtsp推流环境
  • Android14 OTA升级速度过慢问题解决方案