Hive体系结构

Hive体系结构

一、用户接口
  用户接口主要有三个:CLI,JDBC 和 WUI
   1.CLI,最常用的模式。实际上在>hive 命令行下操作时,就是利用CLI用户接口。
   2.JDBC,通过java代码操作,需要启动hiveserver,然后连接操作。
   3.WUI,是通过浏览器访问Hive。但是需要启动hwi服务,执行:./hive service hwi &
  配置示例:

<property>
	<name>hive.hwi.listen.host</name>
	<value>0.0.0.0</value>
</property>

<property>
	<name>hive.hwi.listen.port</name>
	<value>9999</value>
</property>

<property>
	<name>hive.hwi.war.file</name>
	<value>/home/software/hive</value>
</property>

二、Metastore
  Hive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
  元数据信息对应:
   DBS : 数据库的元数据信息
   TBLS : 表的元数据信息
   COLUMNS : 列字段元数据信息
   SDS : 表在HDFS里的位置信息
  解释器(complier)、优化器(optimizer)、执行器(executor)组件
   这三个组件用于:HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。
三、Hive工作流程
在这里插入图片描述
  1.通过客户端提交一条Hql语句
  2.通过complier(编译组件)对Hql进行词法分析、语法分析。在这一步,编译器要知道此hql语句到底要操作哪张表
  3.去元数据库找表信息
  4.得到表的元信息
  5.complier编译器提交Hql语句分析方案。
  6.1 executor 执行器收到方案后,执行方案(DDL过程)。在这里注意,执行器在执行方案时,会判断如果当前方案是否涉及到MR组件,比如为表添加分区信息、比如字符串操作等,比如简单的查询操作等,此时就会直接和元数据库交互,然后去HDFS上去找具体数据。如果方案需要转换成MR job,则会将job 提交给Hadoop的ResouceManager。
  6.2 MR job完成,并且将运行结果写入到HDFS上。
  6.3 执行器和HDFS交互,获取结果文件信息。
  7.如果客户端提交Hql语句是带有查询结果性的,则会发生:7-8-9步,完成结果的查询。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值