搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
weixin_40725706
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
ubuntu 22(1),快速上手_ubuntu22安装es8.x
2
Flink自定义实现ElasticSearch Table Source_flink es source
3
git bash here右键菜单
4
这几十个前端炫酷库你都知道吗?
5
【机器学习小实验1】线性回归实现波士顿房价预测_采用波士顿房价数据集实现线性回归预测代码
6
八个新手入门的有趣python海龟画图(附代码)_海龟绘图python代码
7
Mac安装python环境_mac 配置python环境
8
mongoDB教程(十):导入、导出_mongdb 导入导出
9
SpringBoot+Redis+JPA整合使用
10
Mac M系列安装配置VSCode_mac vscode
当前位置:
article
> 正文
Hive on Spark、Spark on Hive的异同_hiveonspark和sparkonhive区别
作者:weixin_40725706 | 2024-07-24 03:09:15
赞
踩
hiveonspark和sparkonhive区别
本篇对
Hive
on Spark、Spark on Hive 两个概念做个澄清。
1.1 什么是 Hive on
Spark
?
定义:
Hive-on-Spark 是在 Hive 上新增一种计算引擎:Spark
目的
:借助 Spark 内存计算引擎的优势,提升 Hive 查询性能(相较于默认执行引擎 MR)
地位
:Spark 和 Hive 原有的执行引擎 MR,Tez 平级,可互相替换
益处
:给已经部署了 Hive 或者 Spark 的用户提供了更加灵活的选择,从而进一步提高 Hive 和 Spark 的普及率
1.2 什么是 Spark on Hive?
定义
:没有官方的 Spark on Hive 说法,属于大家习惯性称呼。结合网上资料,将其对应为 SparkSQL 读写 Hive 表特定场景
目的
:使 SparkSQL 能够访问 Hive 表
地位
:SparkSQL 对 Hive 为非必须依赖,SparkSQL 可以创建自己的metastore_db,但两者结合使用为目前常态
益处
:可以使新版 SparkSQL 访问旧的数仓表,便于 SparkSQL 推广和应用
2.1 Hive on Spark 历史
Hive 是基于 Hadoop 平台的数据仓库,最初由 Facebook 开发
在经过多年发展之后,已经成为 Hadoop 事实上的SQL引擎标准
Hive 最初的计算引擎为 MapReduce
受限于其自身的 Map + Reduce 计算模式,以及不够充分的内存利用,MapReduce 的性能难以得到提升
Hortonworks 于 2013 年提出将 Tez 作为另一个计算引擎以提高 Hive 的性能
Hortonworks 有一个死对头 Cloudera
2014 年,Cloudera 主导启动了 Hive on Spark。这个项目得到了 IBM,Intel 和 MapR 的支持(注意:没有 Databricks,但 Databricks 在开发过程中积极配合)
2015 年 1 月初,Hive-on-Spark 合并回 trunk, 并在 Hive 后续版本中发布
2.2 SparkSQL 历史
定位: Spark 官方 Databricks 的项目,Spark 项目本身主推的 SQL 实现
Spark 很早就已开始对接 Hive, 2013年,发布了 Shark 项目,用以提升 Hive 查询性能
shark 底层使用 spark 的基于内存的计算模型,从而让性能比 Hive 提升了数倍到上百倍
底层很多东西还是依赖于 Hive,修改了内存管理、物理计划、执行三个模块
Shark 对于 Hive 的修改/侵入性过于庞大,导致 Hive 社区都无法接受,无法合并回社区
2014 年 6 月 1 日的时候,Spark 宣布不再开发 Shark,全面转向 Spark SQL 的开发
3. Hive on Spark / Spark on Hive 异同
相同点:
SQL 执行层都是 Spark 引擎
不同点:
SQL 解析层不同, Hive on Spark (hive compiler), Spark on Hive (SparkSQL compiler)
各自的长期规划不同:
其中 SparkSQL 作为 Spark 生态的一员继续发展,而不再受限于 Hive,只是兼容 Hive;而 Hive on Spark 是一个 Hive 的发展计划,该计划将 Spark 作为 Hive 的底层引擎之一,也就是说,Hive 将不再受限于一个引擎,可以采用 Map-Reduce、Tez、Spark 等引擎。
4. Hive on Spark 技术实现原理
Hive on Spark 总体的设计思路是,尽可能重用 Hive 逻辑层面的功能;从生成物理计划开始,提供一整套针对 Spark 的实现
尽可能减少对 Hive 原有代码的修改
对于选择 Spark 的用户,应使其能够自动的获取 Hive 现有的和未来新增的功能
尽可能降低维护成本,保持对 Spark 依赖的松耦合
引入 SparkCompiler,与 MapReduceCompiler 和 TezCompiler 平行,将 Operator Tree 转换为 Task Tree
SparkWork 对应 DAG 执行计划,SparkTask 对应 Job 任务
最后通过 foreachAsync 将 SparkTask 提交执行。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/weixin_40725706/article/detail/872673
推荐阅读
article
[
Hive
]
INSERT
OVERWRITE
DIRECTORY
要注意的
问题
...
命令,需要确保目录的路径是正确的,并且
Hive
有权限访问和写入该目录。同时,由于所有的命令都是发送到主
Hive
Serve...
赞
踩
article
【
hive
】- 使用
insert
into
insert
overwrite
插入
数据
到静态
分区
、动态...
本文详细介绍了Hive中的动态
分区
、
insert
into
和
insert
overwrite
操作,包括如何设置参数、
数据
插入...
赞
踩
article
Hive
insert
into
语句用法...
在
Hive
0.8开始支持Insert
into
语句,它的作用是在一个表格里面追加数据。标准语法语法如下:12345678...
赞
踩
article
【
hive
】- 使用
insert
into
insert
overwrite
插入
数据
到静态
分区
、动态...
【代码】【
hive
】- 使用
insert
into
insert
overwrite
插入
数据
到静态
分区
、动态
分区
、动静态...
赞
踩
article
过往记忆的专栏文章转载:
Hive
inser
t
into
语句用法_如何把
hive
语法
inser
in...
过往记忆的专栏文章转载:
Hive
inser
t
into
语句用法原始链接:https://www.iteblog.com...
赞
踩
article
spark
.
network
.
timeout
参数入门...
默认120s所有网络交互的默认超时时间。 如果未配置,则将使用此配置代替
spark
.storage.blockManag...
赞
踩
article
Hive
2.3.3 是默认支持
insert
overwrite
、
insert
into
的,不需要修...
今天在
Hive
中进行联表查询: select t1.* from cleaned_subscribe_log_info_...
赞
踩
article
Hive
Insert
命令...
写的非常好https://blog.csdn.net/Post_Yuan/article/details/6288761...
赞
踩
article
【
hive
】- 使用
insert
into
insert
overwrite
插入
数据
到静态
分区
、动态...
Hive中支持的
分区
类型有两种,静态
分区
(static partition)与动态
分区
(dynamic partitio...
赞
踩
article
Spark
程序运行
常见错误
解决
方法以及优化_
启动
spark
on
yarn
报错...
Spark
程序运行
常见错误
解决
方法及优化一.org.apache.
spark
.shuffle.FetchFailedEx...
赞
踩
article
【
笔记
】
Spark
Streaming
笔记
总结(
Python
版)
_
sparkstreamimg
的
考点...
Spark
Streaming
保姆级
笔记
总结
_
sparkstreamimg
的
考点
sparkstreamimg
的
考点 ...
赞
踩
article
Hive
SQL
开发
指南(一)
数据类型
及函数_
hive
-sql
开发
规范...
在大数据领域,
Hive
SQL
是一种常用的查询语言,用于在 Hadoop上进行数据分析和处理。为了确保代码的可读性、维...
赞
踩
article
【
Hive
---05】
DDL
数据
定义语言『
数据
库
操作
| 表
操作
| 视图 vs 物化视图』_
建表
...
1.
DDL
概述2. 查看完整
建表
/建库语句3.
数据
库
操作
⭐3.1 创建
数据
库
3.2 查询
数据
库
3.3 切换
数据
库
3...
赞
踩
article
Hive
---DDL_
hive
ddl
...
因此通常使用这些工具将数据流式传输到现有分区中,但是这会使读者感到脏读(也就是说,他们将在开始查询后看到写入的数据),并...
赞
踩
article
Hive
-
DDL
详解
(
超详细
)
_
hive
ddl
...
本教程将介绍
Hive
QL的数据定义语言
(
DDL
)
,帮助您了解如何在
Hive
中创建数据库、切换数据库、创建表格以及查看和删...
赞
踩
article
Hive
——DDL(
Data
Definition Language)
数据
定义
语句
用法详解_
hive
...
Hive
DDL
语句
详解_
hive
ddl
语句
hive
ddl
语句
...
赞
踩
article
HIVE
——常用
sql
命令总结_
hive
执行
sql
文件
...
库创建库CREATE DATABASE IF NOT EXISTS db01;查看库SHOW DATABASES;使用库...
赞
踩
article
SQL 与
Hive
技术总结_如何通过
sql
查询
hive
的
版本
...
1、
Hive
安装_w3cschool所有Hadoop
的
子项目,如
Hive
, Pig,和HBase,都需要Linux
的
操...
赞
踩
article
hive
sql
教学_
hive
sql
教程...
早期学习笔记,供大家参考_
hive
sql
教程
hive
sql
教程 ...
赞
踩
article
hive
学习之二:
hive
sql
使用总结及遇到的问题_
hive
报错
is
not
supported
...
1.
hive
在连接中不支持不等值连接,不支持or,where条件后不支持子查询。分别举例如下及实现解决办法。 1.1.不...
赞
踩
相关标签
hive
hadoop
数据仓库
Hadoop
Hive
spark
hive
insert overwrite
insert into
联表查询
Hive
insert
插入数据
kafka
大数据
笔记
linux
HQL
Hive开发规范
Hive优化
Hive开发指南