数据仓库工具Hive的功能介绍

Hive是Hadoop项目中的另一个子项目,它是建立在Hadoop基础之上的数据仓库工具,可以存储、查询和分析存储在HDFS中的大规模数据。从架构上看,Hive功能模块包括用户端、解释器、元数据存储和分析数据存储。如下图所示:
数据仓库工具Hive的功能介绍
文章图片
Hive功能结构 用户端:主要包含命令行(CLI)、客户端(Client)和Web图形化界面(WebGUI)。最常用的是CLI,它启动的时候会同时启动一个Hive守护进程服务,使用者可以交互式地输入地输入命令并得到相应的结果输出。Client是Hive的客户端,用户通过它连接到Hive的服务器。Client模式启动的时候,需要启动Hive服务器所在的节点,并进行相应的配置。WebGUI工具允许用户通过浏览器访问Hive,使用前要启动HWI组件(Hive Web Interface)。
【数据仓库工具Hive的功能介绍】解释器:主要包含执行编译器、优化器和执行器,它们完成HiveQL查询语句的词法分析、语法分析、编译、优化及计划的生成。生成的查询计划也会存储在HDFS中,并在随后通过MapReduce框架调用执行。这也体现了Hive的核心思想之一,就是尽量简化MapReduce开发的工作量,使得某些操作和查询的复杂逻辑对使用者完全透明。
元数据存储:Hive中的元数据包括表的名字、表的列、表分区、表数据所在的目录、是否为外部表,等等。尽管Hive采用NoSQL的方式进行工作,但它仍然使用关系型数据库存储元数据,这点主要是考虑到元数据的规模较小,而对读写同步的要求很高。此外,将元数据的存储从Hive的数据服务中解耦出来,可以大大减少执行语义检查的时间,也能提高整个系统运行的健壮性。常用的关系型数据库配置是MySQL或Derby嵌入式数据库。
分析数据存储:Hive用于分析的海量数据都存储在HDFS之中,支持不同的存储类型包括纯文本文件、HBase等文件。一旦解释器接受了HiveQL,那么Hive将直接读取HDFS的数据,并将查询逻辑转化成MapReduce计算来完成。

    推荐阅读