Spark/Hive

news2025/7/19 21:01:57

Spark/Hive

  • Hive 原理
  • Spark with Hive
    • SparkSession + Hive Metastore
    • spark-sql CLI + Hive Metastore
    • Beeline + Spark Thrift Server
  • Hive on Spark

  • Hive 擅长元数据管理
  • Spark 擅长高效的分布式计算

Spark + Hive 集成 :

  • Hive on Spark : Hive 用 Spark 作为底层的计算引擎时
  • Spark with Hive : Spark 把 Hive 当元信息的管理工具

Hive 原理

Hive架构 , 可插拔的第 三方独立组件 :

  • User Interface 提供 SQL 接入服务
  • CLI 与 Web Interface 在本地接收 SQL 查询语句
  • Hive Server 2 提供 JDBC/ODBC 客户端连接,从远程提交 SQL 查询请求

在这里插入图片描述

SQL 查询的工作过程 :

  1. 收到 SQL 后,Driver 先用 Parser ,将查询语句转化为 AST(Abstract Syntax Tree,查询语法树)
  2. Hive 从 Hive Metastore 拿表的元信息,如 : 表名、列名、字段类型、数据文件存储路径、文件格式
  3. Planner 根据 AST 生成执行计划
  4. Optimizer 优化执行计划
  5. Execution 提交执行计划

Spark with Hive

Spark with Hive 集成方式 :

  • 创建 SparkSession,访问 Hive Metastore
  • 通过 spark-sql CLI,访问本地 Hive Metastore
  • 通过 Beeline,访问 Spark Thrift Server

SparkSession + Hive Metastore

启动 Hive Metastore

hive --service metastore

Spark 拿 Metastore 访问地址的两种办法 :

  • 创建 SparkSession 时,通过 config 指定 hive.metastore.uris
  • 把Hive的 hive-site.xml 拷到 Spark 的 conf 下

spark-shell 下写代码 :

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.DataFrame

val hiveHost: String = _

// 创建SparkSession实例
val spark = SparkSession.builder()
  .config("hive.metastore.uris", s"thrift://hiveHost:9083")
  .enableHiveSupport()
  .getOrCreate()

// 读取Hive表,创建DataFrame
val df: DataFrame = spark.sql(“select * from salaries”)
df.show

/** 结果打印
+---+------+
| id|salary|
+---+------+
| 1| 26000|
| 2| 30000|
| 4| 25000|
| 3| 20000|
+---+------+
*/

SparkSession + Hive Metastore 集成方式 :

  • Spark 只涉及 Hive 的 Metastore

在这里插入图片描述

spark-sql CLI + Hive Metastore

spark-sql CLI 与 Hive Metastore 要在同个节点

  • spark-sql CLI 只能访问 本地 Hive Metastore

Beeline + Spark Thrift Server

用 Beeline 客户端,连接 Spark Thrift Server,从而完成 Hive 表的访问与处理

Hive Server 2 (Hive Thrift Server 2) 采用 Thrift RPC 协议框架

Beeline + Spark Thrift Server 集成 :

  • Spark Thrift Server 与 Hive Server 2 的实现逻辑一样。最大区别:SQL 查询接入后的解析、规划、优化与执行

在这里插入图片描述

启动 Spark Thrift Server :

$SPARK_HOME/sbin/start-thriftserver.sh

Spark Thrift Server 启动后,在任意节点上通过 Beeline 就能访问该服务

beeline -u "jdbc:hive2://hostname:10000"

Hive on Spark

Hive on Spark :Hive 用 Spark 作为分布式执行引擎

  • SQL 语句的解析、规划与优化都由 Hive 的 Driver 完成
  • Hive on Spark 衔接的部分是 Spark Core

指定 Spark 执行引擎

set hive.execution.engine=spark

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/395456.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【BOOST C++】组件编程(1)--动态链接库

一、说明 所谓组件工程,是指将某些功能函数(类)做成动态链接库的部分,在运行时调入。在调用功能类时,会调入、释放过程。因此,这里首先知道如何用动态链接库调入功能,然后知道如何才是组件。两个…

数字帆船VR虚拟体验教学有什么特色?

数字帆船VR虚拟体验教学是由广州华锐互动开发的一种应用VR虚拟现实技术的教学模式,通过VR技术,学生可以在虚拟的环境中模拟数字帆船的各个方面,包括横风航行、迎风航行、顺风航行等,在沉浸式的场景中获得更加真实的体验&#xff0…

ASEMI高压MOS管10N60参数,10N60特征,10N60大小

编辑-Z ASEMI高压MOS管10N60参数: 型号:10N60 漏极-源极电压(VDS):600V 栅源电压(VGS):30V 漏极电流(ID):10A 功耗(PD&#xff…

【Azure 架构师学习笔记】-Azure Storage Account(2)- Queue Storage

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 接上文 【Azure 架构师学习笔记】-Azure Storage Account(1)-类型简介 前言 Azure Storage Queues 是一个专门用来处理基于云环境队列的Azure 服务。每个队列都维护着…

【(1+1+2+1+2+3+到1+2+3+到+n)】2023-3-5

缘由https://ask.csdn.net/questions/7895988鉴于初学知识储备不足认识模糊,这篇文章就从最基础的C知识入手,用详细资料来描述这个程序关联的知识,由于本程序使用一行语句完成运算,因此,将按运算符(自左向右…

每天学一点之网络编程

网络编程 一、软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷,百度网盘。 B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器…

go语言踩坑大全

文章目录1.左大括号 { 不能单独放一行2.未使用的变量3.未使用的 import4.简短声明的变量只能在函数内部使用5.使用简短声明来重复声明变量6.不能使用简短声明来设置字段的值7.覆盖了变量差错8.显式类型的变量无法使用 nil 来初始化9.直接使用值为 nil 的 slice、map10.map 容量…

CFS三层靶机安装与配置

CFS三层靶机安装与配置 环境下载 百度网盘 提取码:Chen 环境安装 下载完成后,有三个文件夹,每个文件夹对应一个靶机 进入三个文件夹,双击打开后缀为.ovf的文件,按提示安装虚拟机 环境配置 网段划分 target1&#…

LCMXO3L-1300E-5MG121C/LCMXO3L-1300E-5MG121I【FPGA】LCMXO3L-1300E-5MG256I嵌入式器件

LCMXO3L-1300E-5MG121C/LCMXO3L-1300E-5MG121I【FPGA】LCMXO3L-1300E-5MG256I嵌入式器件【说明】MachXO3设备系列是一个超低密度系列,支持最先进的可编程桥接和IO扩展。它具有突破性的IO密度和最低的每IO成本。设备IO功能集成了对最新行业标准IO的支持。MachXO3L/LF…

工作订单生命流程

1. Field Service 中最重要的流程是工作订单流程,以下是工作订单流程中重要的节点,如图1-1 图1-1 2. 图1-2 说明了构成工作订单流程的实体、属性和关系,本篇文章将重点围绕此图做示例介绍 图1-2 3. 工作订单流转流程如图1-3所示 图1-3 图1…

RLOAM/RO-LOAM

LOAM框架 LOAM框架包含三个步骤: Scan registration:从原始激光扫描点数据中提取点特征。点特征是角点或者面点。 odometry estimation:在特征提取之后,特征点传递到里程计模块,通过特征匹配和优化步骤计算相对坐标变…

像专业人士一样调试 JavaScript:查找和修复错误的工具和技术

介绍JavaScript 是一种功能强大的编程语言,用于创建交互式网页和动态用户界面。然而,与任何编程语言一样,JavaScript 代码可能包含错误,这些错误可能会导致意外行为、错误或崩溃,最重要的是,它会使您的生活…

Apollo提前加载问题

Apollo大家应该都有在项目中用到,我们项目也不例外,携程开源的非常好用的配置化平台。今天在搭建新服务的时候发现应为Apollo的配置导致服务启动失败,估次排查一下具体的原因顺便记录下来,翻边后面再次遇到可以查阅解决&#xff0…

Golang 中 sync/atomic 包的原子操作

背景 Go中多协程的情况下, 要保证操作的原子性,一般要使用RWMutex或者Mutex, 但是锁使用起来比较复杂,还要考虑lock 和unlock 顺序和成对出现,不注意就容易出错。 于是在sync/atomic包中,把我们常用的一些…

【源码库】跟着 Vue3 学习前端模块化

Vue3为了支持不同的用户群体,提供了多种模块化方案,这样使得我们在使用的Vue的使用可以有很多种方式; 例如我们可以直接在html中使用script标签引入Vue,也可以前端工程化工具,例如webpack、rollup等打包工具&#xff…

2023年湖北一级技师二级技师报名时间、考试时间是什么时候?

2023年湖北一级技师二级技师报名时间、考试时间是什么时候? 技师是属于职业资格证书,是各行业的高级技术人员中设置的技术职务。技师是技能高超的技术人员、能工巧匠,具有丰富的实践经验,能在本工种难度较大的工艺加工、复杂设备、…

数据治理之数据梳理

目录 1.定义 2.用途作用 3.实施方法 3.1自上而下 3.1.1数据域梳理 3.1.2数据主题梳理 3.1.3 数据实体梳理 3.1.4设计数据模型 3.1.5优点 3.1.5缺点 3.2自下而上 3.2.1需求分析 3.2.2展现 3.2.3分析逻辑 3.2.4数据建模 3.2.5优点 3.2.6缺点 1.定义 “数据梳理”即对…

C语言例程:用二维数组实现矩阵转置

用二维数组实现矩阵转置 本实例将输入的 34 矩阵转置为 43 矩阵,并输出结果。通过本实例,可以学习如何使用二 维数组。 实例解析 二维数组的定义 二维数组定义的一般形式为: 第一部分 基础篇 X2277 类型说明符 数组名[常量表达式][常量表…

STM32移植FreeRTOS操作系统

一、FreeRTOS源码下载(1)移植钱得准备前菜对吧,我们先来去官网瞄一瞄网址:https://freertos.org/zh-cn-cmn-s/ 第一步:点击下载FreeRTOS第二步:选择版本下载(我选择稳定版本)注&…

git 双因子身份登录遇到的问题及解决方法

git 双因子身份登录描述: 一般我们登录账号和密码的时候都是通过git的账号和密码直接登录即可,但是如果我们用双因子身份进行登录的时候发现用账号和密码登录一直登录不了,,,,有点emo了。。 git 双因子身份…