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

【大数据学习 | Spark】Spark on hive与 hive on Spark的区别

1. Spark on hive

Spark on hive指的是使用Hive的元数据(Metastore)和SQL解析器(HiveQL)。这种方式下,spark可以读取和写入hive表,利用hive的元数据信息来进行表结构的定义和管理。

具体特点为:

1.1 元数据共享

sparkSQL使用hive的Metastore来获取表的元数据信息,这样可以在SparkSQL直接访问hive表。

1.2 SQL兼容性

sparkSQL支持HiveQL的语法,使得用户可以使用熟悉的Hive查询语句在Spark上执行SQL查询。

1.3 性能优化

Spark可以利用强大的分布式计算能力来加速查询,尤其是在处理大规模数据集时。

2. Hive on Spark

hive on Spark指的是将hive的默认的执行引擎MR换成Spark。这种方式下,Hive查询会由Spark执行而不是MR执行,从而利用Spark强大的计算能力。

具体特点为:

2.1 执行引擎的切换

通过配置Hive使其使用Spark作为执行引擎,可以在不改变现有的Hive查询的情况下,显著提高查询性能。

2.2 配置设置

需要在Hive配置文件设置相关参数。

2.3 兼容性

大多数的Hive查询和UDF(用户自定义函数)都可以在Spark引擎上运行,但某些特定的功能可能需要额外的配置。

3. 主要区别

3.1 角色和职责

  • Spark on hive,Spark作为主要的计算框架,利用Hive的元数据和SQL解析器。
  • Hive on Spark,Hive作为主要的查询工具,使用Spark作为底层的执行引擎。

3.2 使用场景

  • Spark on hive,适用于已经使用Spark进行数据处理,但希望利用Hive的元数据管理和SQL解析语法的场景。
  • Hive on Spark,适用于已经适用SQL进行数据查询,但希望提高查询性能的场景。

3.3 发起点

  • Spark on hive,查询是从Spark应用程序发起的,使用SparkSQL或者DataFrame API。
  • Hive on Spark,查询是从Hive客户端发起,使用HiveQL。

3.4 元数据管理

  • Spark on hive,Spark通过Hive的MetaStore获取元数据。
  • Hive on Spark,Hive通过自己的MetaStore来获取元数据。

3.5 任务调度

  • Spark on hive,Spark直接生成执行计划并调度Spark任务。
  • Hive on Spark,Hive生成查询计划,然后将其转化为Spark任务并提交给Spark集群。

http://www.lryc.cn/news/492645.html

相关文章:

  • 软件测试丨Pytest 第三方插件与 Hook 函数
  • Python学习35天
  • IO基础(字符集与字符流)
  • LLM应用-prompt提示:RAG query重写、相似query生成 加强检索准确率
  • [python脚本处理文件入门]-17.Python如何操作Excel文件的读写
  • 深度理解进程的概念(Linux)
  • 【C++】STL容器中的比较函数对象
  • 深度学习基础02_损失函数BP算法(上)
  • 6.584-Lab4A
  • 语义版本控制
  • 深入理解HTML基本结构:构建现代网页的基石
  • 一体化数据安全平台uDSP 入选【年度创新安全产品 TOP10】榜单
  • 【机器学习】机器学习的基本分类-监督学习(Supervised Learning)
  • Oracle之提高PLSQL的执行性能
  • [VSCode] vscode下载安装及安装中文插件详解(附下载文件)
  • PHP中类名加双冒号的作用
  • 前端编程训练 异步编程篇 请求接口 vue与react中的异步
  • 【kafka03】消息队列与微服务之Kafka 读写数据
  • 【分布式系统】唯一性ID的实现
  • 哪里能找到好用的动物视频素材 优质网站推荐
  • SRAM芯片数据采集解决方案
  • 【贪心算法第七弹——674.最长连续递增序列(easy)】
  • [AI] 知之AI推出3D智能宠物:助力语言学习与口语提升的新选择
  • Android 14之HIDL转AIDL通信
  • 【R库包安装】R库包安装总结:conda、CRAN等
  • 学习PMC要不要去培训班?
  • 前端 用js封装部分数据结构
  • cocoscreator-doc-TS:目录
  • 理解Java集合的基本用法—Collection:List、Set 和 Queue,Map
  • IOC容器实现分层解耦