当前位置: 首页 > news >正文

Hive的核心架构

Hive中的核心组件有MetaStore、HiveServer2、Hive Client

MetaStore是元数据信息的访问接口,它不直接存储元数据的信息。而元数据信息默认是存储在Derby数据库中的,里面存储着数据库、表、表中的字段等数据的信息。默认确实是保存在Java自带的Derby数据库中的,但是由于derby数据库不支持并发,也就是说不支持同时两个客户端去操作derby数据库,因此通常情况下都会再去配置一个mysql数据库去存放元数据。

HiveServer2有两个功能,一个是提供JDBC/ODBC的访问接口,一个是提供用户认证的相关功能。

Hive Client提供了关于客户端访问Hive数据库的两种方式,分别是CLI和JDBC/ODBC。CLI的方式只是在安装了Hive的本地的客户端上能使用;如果想要远程访问Hive,那就需要使用另一种方式JDBC/ODBC。

下面是一个具体的实例:

整体的情况是这样的:我在客户端执行了一条DDL命令,创建了一张数据表,然后MetaStore会保存这张表的元数据信息,并将具体的数据存储在HDFS上面。然后又在客户端执行Hive SQL语句来操作具体的表,在执行Hive SQL语句时会先对SQL语句进行解析,转化为MapReduce程序,然后再提交给Yarn进行资源的调配和运行。在SQL解析时会经过一个Driver程序,如果客户端是用的CLI来操作的,那么Driver就位于CLI中,如果客户端是远程写入的SQL,那么Driver就是位于HiveServer2中的。Driver的详细原理见下。

Driver驱动器中有七个部分组成,分别是解析器、语法分析器、逻辑计划生成器、逻辑优化器、物理计划生成器、物理优化器、执行器。

(1)、解析器:将SQL字符串转换成抽象语法树(AST)

(2)、语法分析树:将抽象语法树进一步划分为查询块(QeuryBlock)

(3)、逻辑计划生成器:根据语法树生成逻辑计划

(4)、逻辑优化器:对生成的逻辑计划进行优化。例如谓词下推

(5)、物理计划生成器:根据优化后的逻辑计划生成物理计划

(6)、物理优化器:对生成的物理计划进行优化。例如Map Join优化

(7)、执行器:执行计划,并将执行结果返回给客户端

http://www.dtcms.com/a/351052.html

相关文章:

  • Go语言模块开发
  • 从线到机:AI 与多模态交互如何重塑 B 端与 App 界面设计
  • S-HUB实现泛微E9与飞书对接
  • Redisson详解:高性能redis客户端,超详细!
  • MyBatis 初识:框架定位与核心原理——SQL 自由掌控的艺术
  • 【资讯】国内免费/开源大模型对比及获得途径总结
  • 书生大模型InternLM2:从2.6T数据到200K上下文的开源模型王者
  • 实体店转型破局之道:新零售社区商城小程序开发重构经营生态
  • kafka消费顺序保障
  • Kafa面试经典题--Kafka为什么吞吐量大,速度快
  • 高校科技成果转化生态价值重构
  • Go函数详解:从基础到高阶应用
  • Ubuntu Server 快速部署长安链:基于 Go 的智能合约实现商品溯源
  • 质押、ETF、财库三箭齐发:以太坊价值逻辑的重构与演进
  • Linux系统中,利用sed命令删除文档空格的方法汇总
  • Redis ZSET 深度剖析:从命令、原理到实战
  • 基于 Elasticsearch 解决分库分表查询难题
  • [Maven 基础课程]Maven 是什么
  • 【Linux操作系统】简学深悟启示录:环境变量进程地址
  • Java基础第5天总结(final关键字,枚举,抽象类)
  • Redis-数据类型与常用命令
  • Java数据结构——9.排序
  • 【OpenAI】ChatGPT-4o 全能AI-omni的详细介绍+API KET的使用教程!
  • Stream API 新玩法:从 teeing()到 mapMulti()
  • 多种“找不到vcruntime140.dll,无法继续执行代码”提示的解决方法:从原理到实操,轻松修复系统故障
  • 【Delphi】中通过索引动态定位并创建对应窗体类实例
  • CMake构建学习笔记20-iconv库的构建
  • MATLAB在生态环境数据处理与分析中的应用,生态系统模型构建与数值模拟等
  • 简述滚珠丝杆升降机的结构和原理
  • CSS 结构伪类选择器