Hive体系结构与工作流程

Hive体系结构

在这里插入图片描述
用户结构主要有三个:CLI / JDBC / WUI

  1. CLI,最常用的模式。实际上在>hive 命令行下操作时,就是利用CLI用户接口。
  2. JDBC,通过java代码操作,需要启动hiveserver,然后连接操作。

MetaStore
Hive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字, 表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。

解释器(complier)、优化器(optimizer)、执行器(executor)组件
这三个组件用于:HQL语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS中,并在随后有MapReduce调用执行。

Hadoop
Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成

Hive工作流程

在这里插入图片描述

  1. 通过客户端提交一条Hql语句
  2. 通过complier(编译组件)对Hql进行词法分析、语法分析。在这一步,编译器要知道此hql语句到底要操作哪张表
  3. 去元数据库找表信息
  4. 得到信息
  5. complier编译器提交Hql语句分析方案。
  6. (1) executor 执行器收到方案后,执行方案(DDL过程)。在这里注意,执行器在执行方案
    时,会判断:
    如果当前方案不涉及到MR组件,比如为表添加分区信息、比如字符串操作等,比如简单的查询
    操作等,此时就会直接和元数据库交互,然后去HDFS上去找具体数据。
    如果方案需要转换成MR job,则会将job 提交给Hadoop的JobTracker。
    (2) MR job完成,并且将运行结果写入到HDFS上。
    (3)执行器和HDFS交互,获取结果文件信息。
  7. 如果客户端提交Hql语句是带有查询结果性的,则会发生:7-8-9步,完成结果的查询。
发布了63 篇原创文章 · 获赞 3 · 访问量 1425

猜你喜欢

转载自blog.csdn.net/weixin_41772761/article/details/103664132