欢迎投稿

今日深度:

Hive体系结构,

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步,完成结果的查询。

www.htsjk.Com true http://www.htsjk.com/hive/40100.html NewsArticle Hive体系结构, Hive体系结构 一、用户接口 用户接口主要有三个:CLI,JDBC 和 WUI 1.CLI,最常用的模式。实际上在hive 命令行下操作时,就是利用CLI用户接口。 2.JDBC,通过java代码操作,需...
相关文章
    暂无相关文章
评论暂时关闭