Hive是建立在Hadoop上的数据仓库基础构架。
它提供了一系列的工具,用来进行数据提取、转化、加载,这是一种可以存储
、查询和分析存储在Hadoop中的大规模数据的机制。
根据管理层次
(1)元数据存储
Hive将元数据存储在RDBMS中,有三种模式可以连接到数据库:
- Single User Mode:此模式连接到一个In-memory的数据库Derby,一般用于Unit Test。
- Multi User Mode:通过网络连接到一个数据库中,这是最常用的模式。
- Remote Server Mode:用于非Java客户端访问元数据库,在服务器端启动一个。
MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer来访问元数据库。
(2)数据存储
Hive没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由地组织Hive中的表,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,它就可以解析数据了。
Hive中所有的数据都存储在HDFS中,Hive中包含4种数据模型:Table、External Table、Partition和Bucket。
3)数据交换
数据交换主要分为以下几部分,
- 用户接口:包括客户端、Web界面和数据库接口。
元数据存储:通常存储在关系数据库中,如MySQL、Derby等。
Hive将元数据存储在数据库中。元数据包括表的名字、表的列、表的分区、表分区的属性等等。
解释器、编译器、优化器、执行器。
完成Hive QL查询语句、从词法分析、语法分析、编译、优化到查询计划的生成。
原文链接:Hadoop学习笔记(3)--Hive,转载请注明来源!