常用元数据表
在使用Hive进行开发时,往往需要获得己存在 Hive表的建表语句 ( Data D efinition
L anguage, DDL) ,然而Hive本身并没有提供这样一个工具 。 要想还原建表 DDL 就必须从
元数据入手 。 Hive 的元数据并不存放在 HDFS 上 ,一般存放在MySQL、 Derby中
表名 | 说明 |
---|---|
TBLS | 所有Hive表的基本信息 |
TABLE_PARAM | 表级属性,如是否外部表、表注释等 |
COLUMNS | Hive 表字段信息(字段注释 , 字段名 , 字段类型,字段序号) |
SDS | 所有Hive表、表分区所对应的HDFS数据目录和数据格式 |
SERDE_PARAM | 序列化反序列化信息 , 如行分隔符 、 列分辑符、NULL的表示字符等 |
PARTITIONS | Hive 表分区信息 |
PARTITION KEYS | Hive 分区表分区键 |
PARTITION KEY_VALS | Hive 表分区名(键值〉 |
元数据存储模式
单用户模式
默认安装Hive使用的是 Derby内存数据库保存Hive的元数据,这样是不可以并发调用Hive,使用 Derby 存储方式时,运行 Hive 会在当前目录生成一个 Derby 文件和一个 metastore_db 目 录 。 这种存储方式的弊端是在同一个目录下同时只能有一个Hive客户端能使用数据库。 配置文件中的 hive .metastore.warehouse .dir
属性指定存储位置
多用户模式
这种模式是使用MySQL 服务器存储元数据,供多个用户使用
远程服务器模式
在服务器端启动一个MetaStoreServer, 客户端利用 Thrift协议通过MetaStoreServer访问
元数据库。客户端的主要配置是 hive.metastore.urls , 用于通过Thrift连接MetaStore
基于hive版本 1.2. 1