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

【大数据学习 | 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.kler.cn/a/418447.html

相关文章:

  • Rust vs Java:后端开发应该选哪个?
  • 【Oracle11g SQL详解】ORDER BY 子句的排序规则与应用
  • 相同的二叉树
  • Mybatis 支持延迟加载的详细内容
  • 浅谈js中onmouseleave和onmouseout的区别
  • Web day06 JDBC Mybatis
  • buuctf-[SUCTF 2019]EasySQL 1解题记录
  • C#tabcontrol如何指定某个tabItem为默认页
  • 量化交易系统开发-实时行情自动化交易-8.4.MT4/MT5平台
  • 触觉智能亮相OpenHarmony人才生态大会2024
  • k8s--pod创建、销毁流程
  • 【学术投稿】Imagen:重塑图像生成领域的革命性突破
  • 反向传播、梯度下降与学习率:深度学习中的优化艺术
  • kafka消息在client是怎么写入的
  • 探索未来:深入人工智能学习框架的奥秘与实践
  • 设计有一个 “分布式软总线“ 系统,跨平台
  • 基于Java Springboot生鲜食品订购微信小程序
  • Next.js - app 路由器之动态路由与并行路由
  • [MacOS] [kubernetes] MacOS玩转虚拟化最佳实践
  • 4399大数据面试题及参考答案(数据分析和数据开发)
  • 《Python基础》之Python中可以转换成json数据类型的数据
  • Vue如何加载十万条数据
  • AI开发-PyTorch-NLP-One-Hot/Word2Vec/GloVe/FastText
  • java八股-分布式服务的接口幂等性如何设计?
  • 爬虫系统学习3——chrome分析post与json
  • 基于深度学习的卷积神经网络十二生肖图像识别系统(PyQt5界面+数据集+训练代码)