一、hive元数据的概念及存储方法
前面提到 Hive 中有两类数据:真实数据和元数据。和关系型数据库一样,元数据可以看作是描述数据的数据,包括 Hive 表的数据库名、表名、字段名称与类型、分区字段与类型等。
Hive 将元数据存储在 RDBMS 中,有以下3种模式可以连接到数据库。
Single User Mode:单用户模式,使用内置 Derby 数据库,也称内嵌 Derby模式。
Multi User Mode: 多用户模式,使用本地 MySQL 数据库,也称本地模式。
Remote Server Mode:远程服务模式,使用远程元数据服务访问数据库,也称远程模式。
按元数据存储位置划分,单用户与多用户模式均属于本地存储,远程服务模式属于远端存储。无论使用哪种模式,Hive 客户端均须首先连接 metastore 服务,然后由 metastore服务去访问数据库以完成元数据的存取。
二、雇员数据元数据信息查询
前面在 Hive 中创建过雇员表,接下来看一下雇员表的元数据在MySQL 中是如何存储的。进入 MySQL,输入如下命令:
mysql> use hive;
-视 hive-site.xml 配置 javaxjdo.option.ConnectionURL 而定
mysql> show tables;
输出结果列出了 Hive 的所有元数据表名称,如图3.4所示。
其中,主要的元数据表介绍如下。
> VERSION:存储Hive 版本。
> DBS、DATABASE_PARAMS: 存储Hive 数据库相关信息。
> TBLS、TABLE_PARAMS、TBL_PRIVS: 存储Hive 表相关信息。
> SDS、SD_PARAMS、SERDES、SERDE_PARAMS:存储 Hive 文件存储相关信息。
> PARTITIONS、PARTITION_KEYS、PARTITION_KEY_VALS、PARTITION_PARAMS: 存储分区相关信息。
> COLUMINS_V2: 存储表对应的字段信息。