Hive的架构原理及组成

一、Hive架构图

在这里插入图片描述

二、架构组成

(1)、用户接口:Client
CLI(command-line interface)、JDBC/ODBC(jdbc 访问 hive)、WEBUI(浏览器访问 hive)
(2)、元数据:Metastore
元数据包括:表名、表所属的数据库(默认是 default)、表的拥有者、列/分区字段、 表的类型(是否是外部表)、表的数据所在目录等;
默认存储在自带的 derby 数据库中,推荐使用 MySQL 存储 Metastore
(3)、Hadoop
使用 HDFS 进行存储,使用 MapReduce 进行计算。
(4)、驱动器:Driver
1.解析器(SQL Parser):将 SQL 字符串转换成抽象语法树 AST,这一步一般都用第 三方工具库完成,比如 antlr;对 AST 进行语法分析,比如表是否存在、字段是否存在、SQL 语义是否有误。
2.编译器(Physical Plan):将 AST 编译生成逻辑执行计划。
3.优化器(Query Optimizer):对逻辑执行计划进行优化。
4.执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于 Hive 来 说,就是 MR/Spark。
三、Hive的运行机制
在这里插入图片描述

Hive 通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的 Driver, 结合元数据(MetaStore),将这些指令翻译成 MapReduce,提交到 Hadoop 中执行,最后,将 执行返回的结果输出到用户交互接口。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive的并行执行原理涉及到Hive的优化和作业调度机制。在Hive中,可以通过设置参数来启用并行执行。其中,设置hive.optimize.skewjoin为true可以启用倾斜数据的并行处理,而设置hive.skewjoin.key为skew_key_threshold(默认值为100000)可以指定倾斜数据的阈值。\[1\] Hive的核心是Driver,而Driver的核心是SemanticAnalyzer。Hive实际上是一个SQL到Hadoop作业的编译器。在Hadoop上,最常见的作业是MapReduce,但Hive也支持其他作业引擎,如Tez和Spark。Hive的并行执行原理与MapReduce类似,但在执行优化上有所区别。\[3\] 总的来说,Hive通过将SQL语句转换为Hadoop作业来实现并行执行。通过优化和作业调度机制,Hive可以提高查询的执行效率和并行处理能力。\[2\] #### 引用[.reference_title] - *1* *3* [hive实现原理介绍](https://blog.csdn.net/breakout_alex/article/details/106938809)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Hive体系结构(二)Hive的执行原理、与关系型数据库的比较](https://blog.csdn.net/Lnho2015/article/details/51417880)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值