常用元數據表
在使用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