《零基础入门Spark》学习笔记 Day 10

Hive与Spark联合

Hive与Spark组合中,Hive擅长元数据管理,Spark专长是高效的分布式计算,两者集成方式有两种:从Spark角度出发,Spark with Hive,从Hive出发即是Hive on Spark。

HIve架构与基本原理

Hive的核心部件主要是User Interface和Drvier。不论是元数据库、存储系统,还是计算引擎,Hive都是以"外包"、"可插拨"的方式交给第三方独立组件。

Hive查询执行流程

  1. 提交查询

    用户通过 CLI、JDBC 或 Web UI 提交 HiveQL 查询(如 SELECT * FROM table WHERE condition)。

  2. 解析与编译

    Driver 组件解析查询,检查语法和语义,访问 Metastore 获取元数据,生成 DAG 形式的执行计划。

  3. 优化与执行

    优化器应用规则优化执行计划(如列剪裁、分区过滤),执行引擎将计划转换为 MapReduce/Tez/Spark 任务。

  4. 结果返回

    计算结果写入临时文件或直接返回客户端,对于大规模结果通常存储到 HDFS 表。

Metastore的重要作用之一,是帮助底层计算引擎高效地定位并访问分布式文件系统中的数据源。Hive支持3类计算引擎,分别是Hadoop MapReduce、Tez和Spark。

Spark with Hive

可以通过3种途径来实现Spark with Hive

1、创建SparkSession,访问本地或远程的Hive Metastore;

2、通过Spark内置的spark-sql CLI,访问本地Hive Metastore;

3、通过Beeline客户羰,访问Spark Thrift Server.

不论是SparkSession+Hive Metastore、Spark-sql CLI+Hive Metastore,还是Beeline+Spark Thrift Server,Spark扮演的角色都是执行引擎,而Hive的作用主要在于通过Metastore提供底层数据集的元数据。

Hive on Spark

在Hive on Spark这种集成模式下,Hive与Spark衔接的部分是Spark Core,而不是Spark SQL,这一点需要我们特别注意

1、查询解析与编译

Hive 接收到 HQL 查询后,通过解析器(Parser)将 SQL 转换为抽象语法树(AST)。

语法树经过语义分析(Semantic Analyzer)验证表、列是否存在,并生成逻辑执行计划(Logical Plan)。

逻辑计划通过优化器(Optimizer)进行规则优化(如谓词下推、列裁剪等),生成优化后的逻辑计划。

2、物理计划生成

优化后的逻辑计划被转换为物理执行计划(Physical Plan),此时任务会被拆分为多个 MapReduce 或 Spark 阶段(Stage)。

在 Hive on Spark 中,物理计划会被转换为 Spark 的 DAG(有向无环图),每个节点对应 Spark 的 RDD 操作(如 mapreduceByKey)。

3、Spark 任务提交

Hive 通过 SparkClient 将生成的 DAG 提交到 Spark 集群。

Spark Driver 接收到任务后,将 DAG 划分为多个 Stage,每个 Stage 包含多个 Task。

Task 由 Spark Executor 在集群节点上执行,期间涉及数据的分区、Shuffle 和聚合操作。

4、数据读取与计算

数据从 HDFS 或 Hive 表存储(如 ORC、Parquet)通过 Spark 的 HadoopRDD 加载到内存。

Spark 执行转换操作(如 filterjoin),触发 Shuffle 时通过 ShuffleManager(如 SortShuffleManager)管理数据分发。

最终结果通过 Collect 或写入表的方式返回给 Hive。

5、资源管理与调度

资源由 Spark 的集群管理器(如 YARN、Mesos 或 Spark Standalone)分配。

Hive 通过 SparkSession 管理 Spark 上下文,确保任务隔离和资源复用。

动态资源分配(Dynamic Allocation)可根据负载调整 Executor 数量。

相关推荐
我命由我1234518 分钟前
Photoshop - Photoshop 把两个 PSD 文件合并
学习·ui·职场和发展·产品运营·产品经理·学习方法·photoshop
牛企老板俱乐部30 分钟前
2026年珠海精锐增材智造金属小批量交付可提供SGS与RoHS材质证明
大数据
SelectDB37 分钟前
Apache Doris 5.0 年度版本前瞻(一):构建统一的多模湖仓实时分析平台
大数据·数据库·数据分析
牛企老板俱乐部39 分钟前
北京租相机押金标准看机型具体而定芝麻信用分高可免押
大数据
! 冰封雪莲 !1 小时前
执法监管能力提升VR学练考系统解决方案
大数据·vr·环保
切糕师学AI1 小时前
如何查看已合并到 master 分支的所有分支?Git 分支清理指南
大数据·git·elasticsearch
FII工业富联科技服务1 小时前
从 Vera Rubin NVL72 拆解高密度 AI 液冷:GPU 的热到底怎么被带走?
大数据·人工智能
suaizai_1 小时前
从1210条报错到全自动修复:AI闭环运维实战
大数据·elasticsearch·搜索引擎
147API1 小时前
蒸馏模型量化上线前,先查精度退化和算子兼容
大数据·人工智能·深度学习·机器学习·蒸馏
摇滚侠2 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 JDBC 事务管理 阅读笔记 33
spring boot·笔记·后端