问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Hive及其架构简介

创作时间:
作者:
@小白创作中心

Hive及其架构简介

引用
CSDN
1.
https://blog.csdn.net/xfp1007907124/article/details/109753946

Hive是基于Hadoop的数据仓库工具,用于处理和分析大规模数据集。本文将详细介绍Hive的基本概念、架构组件以及HQL(Hive查询语言)的执行流程。

什么是 Hive ?

Hive是一个基于Hadoop的数据仓库,适用于一些高延迟性的应用(离线开发)。它可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,并基于表提供类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。

Hive的核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop集群执行。需要注意的是,Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表是纯逻辑表。

什么是数据仓库?

数据仓库本身并不“生产”任何数据,其数据来源于不同外部系统。同时数据仓库自身也不需要“消费”任何的数据,其结果开放给各个外部应用使用。这就是为什么叫“仓库”,而不叫“工厂”的原因。

Hive 架构及组件

Hive的架构主要包括以下几个组件:

  • Meta store:通常存储在关系型数据库如Mysql/derby中,Hive中的元数据包括表的名字、表的列和分区及其属性、表的属性(是否是外部表等)、表的数据所在目录等。

  • Driver:驱动程序,包括语法解析器、计划编译器、优化器、执行器。完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有执行引擎调用执行。

  • 解析器(SQL Parser):将SQL字符串转换成抽象语法树AST,对AST进行语法分析,比如SQL语义是否正确、表是否存在、字段是否存在。

  • 编译器(Physical Plan):将AST编译生成逻辑执行计划(DAG)。

  • 优化器(Query Optimizer):对逻辑执行计划进行优化。

  • 执行器(Execution):把逻辑执行计划转换成可以运行的物理计划,就是MapReduce/Spark程序。

HQL 执行流程

HQL的执行流程主要包括以下步骤:

  1. 发起请求:从UI发起执行请求到Driver。

  2. 获取执行计划:Driver将用户请求发送到编译器获取执行计划。

  3. 获取元数据:编译器根据SQL语句中相关表和分区信息从Meta store获取相关元数据。

  4. 返回元数据:Meta store向编译器返回对应元数据。

  5. 返回执行计划:根据表和分区的元数据对SQL解析和优化,生成逻辑执行计划。该计划是一个DAG图,每个stage对应一个MapReduce的map或者reduce操作。

  6. 运行执行计划:将执行计划发送到Execution Engine,执行引擎会将逻辑执行计划提交到Hadoop中以MapReduce形式进行执行。

  7. 运行结果获取:Driver将运行结果收集发送给UI。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号