当前位置: 首页 > 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.xdnf.cn/news/1367821.html

相关文章:

  • 科普 | 5G支持的WWC架构是个啥(1)?
  • Spring Boot 集成 Docker 构建与发版完整指南
  • Netty源码—性能优化和设计模式
  • (vue)el-progress左侧添加标签/名称
  • 机器视觉学习-day02-灰度化实验
  • 【云计算】云原生(Cloud Native)
  • Spark云原生流处理实战与风控应用
  • 【云原生】CentOS安装Kubernetes+Jenkins
  • 【语法】【C+V】本身常用图表类型用法快查【CSDN不支持,VSCODE可用】
  • 云计算学习笔记——Linux硬盘、硬盘划分、交换空间、自动挂载篇
  • CentOS 7服务器初始化全攻略:从基础配置到安全加固
  • Redis ZSET 深度剖析:从命令、原理到实战
  • 几种方式实现文件自动上传到服务器共享文件夹
  • NVIDIA GPU 中的 L2 Cache
  • 【Linux】Socket编程——TCP版
  • 深入OpenHarmony后台任务“黑匣子”:BackgroundTaskMgr框架全栈解析与实战避坑指南
  • Thingsboard 租户管理员权限,增加租户普通用户权限
  • 三、显示3D文字
  • PLC通讯中遇到的实际场景
  • Mamba-HoME:面向3D医学影像分割的层次化专家混合新框架
  • 自然处理语言NLP: 基于双分支 LSTM 的酒店评论情感分析模型构建与实现
  • 透视光合组织大会:算力生态重构金融AI落地新实践
  • C语言 指针
  • 【设计模式】 面向对象基础
  • 打破技术壁垒的先进制造框架的智慧工业开源了
  • 如何利用ArcGIS探究环境与生态因子对水体、土壤、大气污染物的影响?
  • Mac安装mitmproxy及操作对监控的请求
  • Android Glide常见问题解决方案:从图片加载到内存优化
  • 使用 Docker、Jenkins、Harbor 和 GitLab 构建 CI/CD 流水线
  • Linux文件系统深入解析:从原理到实践