Hive学习系列(一)什么是Hive及Hive的架构

       最近一直在忙面试的事情,面试过程中碰到几家公司都问到了Hive,但是由于最近三年一直在忙海外数据仓库的事情,对于大数据的只限于了解,未有实际的使用,为了更好的面试,特总结了下Hive的相关知识

(1)什么是Hive

        1.1 Hive是Hadoop工具家族中一个重要成员,可以将结构化的数据文件(HDFS)映射为一张数据库表。

        1.2 Hive 定义了简单的类 SQL 查询语言,被称为 HQL,实现方便高效的数据查询

        1.3 Hive的本质是将HQL,转换成MapReduce任务,完成整个的数据的ETL,减少编写MapReduce的复杂度

(2)Hive的体系结构

        Hive架构包括如下组件:CLI(command line interface)、JDBC/ODBC、Thrift Server、Hive WEB Interface(HWI)、metastore和Driver(Complier、Optimizer和Executor)

       Driver组件:核心组件,整个Hive的核心,该组件包括Complier、Optimizer和Executor,它的作用是将我们写的HQL语句进行解析、编译优化,生成执行计划,然后调用底层的MapReduce计算框架。

       Metastore组件:元数据服务组件,这个组件存储hive的元数据,hive的元数据存储在关系数据库里,hive支持的关系数据库有derby、mysql。

       CLI:command line interface,命令行接口。

  ThriftServers:提供JDBC和ODBC接入的能力,它用来进行可扩展且跨语言的服务的开发,hive集成了该服务,能让不同的编程语言调用hive的接口。

  Hive WEB Interface(HWI):hive客户端提供了一种通过网页的方式访问hive所提供的服务。这个接口对应hive的hwi组件(hive web interface)

       

(3)Hive的执行流程简单示意图

Hive 将通过CLI接入,JDBC/ODBC接入,或者HWI接入的相关查询,通过Driver(Complier、Optimizer和Executor),进行编译,分析优化,最后变成可执行的MapReduce。 

大家看到这些是不是特别熟悉,对的这个和传统的数据库的结构非常类似,我这里找了下一个Maysql的结构

      Hive 功能有点类似传统的服务协议,解析器,预处理器,优化器,查询执行计划这些功能的汇总。

      只不过Hive是将HQL转换成MapReduce,而传统的数据将SQL转换成执行引擎可以识别的语言

 

(4)Hive的执行流程示意图(详细)

这张图是Hive执行的一个详细流程,这里面很多东西我还在学习,所以先放在这里

(5)本章总结

   本章主要介绍了什么是Hive,Hive的体系结构,后面还有一系列Hive的文章

 

 

Hive学习系列(二)Hive的查询流程详解 

 Hive学习系列(一)什么是Hive及Hive的架构

 

 

猜你喜欢

转载自xianglp.iteye.com/blog/2338124