Hive架构

Posted 张超五

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive架构相关的知识,希望对你有一定的参考价值。

一、Hive是什么,作用是什么?

  可以这么简单得理解,Hive是一个工具。它得作用是查询hdfs文件系统上得海量数据,方式是通过HQL语句查询(类似sql)。

或许你又有疑问了,明明可以在java程序里直接访问HDFS的数据了啊,为什么还出来一个Hive工具,不是多此一举吗?这种想法的确是对的,而为什么还需要hive呢,

其实hive这个工具就是为了方便那些熟悉sql语句,但是java技能水平有限的小伙伴们。

二、Hive架构:

                        

 


这里我们把Hive架构图从上往下分析:  

1.最顶层——用户接口:

  包括CLI(command line interface)命令行,Client 和 Web UI。CLI是开发过程中常用的接口。

2.Metadata:

  hive 的元数据结构描述信息库,元数据默认是存储在数据库derby中,线上一般使用mysql。在hive的配置文件hive-site.xml中配置:

                  

  在配置文件中加入这一段时候,就会在途中路径中指定的mysql中新建hive_metadata这个数据库,hive_metahive就是拿来存储hive的元数据,并不会储存HDFS上的数据文件的内容,只会存储数据文件的相关信息。在查询中的主要功能就是结合元数据的信息,把HDFS映射成table提供给HQL来查询。

 

3.Driver: 解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后由  MapReduce调用执行。简单的来说:就是把HQL转成MapReduce的一个过程。

 

4.接下来就是HADOOP

  把MapReduce任务放到HADOOP框架中执行,查询HADOOP中的HDFS文件系统中的海量数据。

  

  

 

 

  

  

  

以上是关于Hive架构的主要内容,如果未能解决你的问题,请参考以下文章

关于Hive数据仓库的那些事儿Hive架构

Hive的设计与架构

Hive的设计与架构

Hive 系统架构

1Hive数据仓库——概念及架构

Hive架构原理