您好,登錄后才能下訂單哦!
本篇內容主要講解“hive的配置以及元數據庫表描述”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“hive的配置以及元數據庫表描述”吧!
有關hive的配置都在hive-site.xml文件中。
屬性 | 描述 | 默認值 |
---|---|---|
hive.metastore.warehouse.dir | 指定hive表在hdfs上的存儲路徑 | /user/hive/warehouse |
javax.jdo.option.ConnectionURL | 配置元數據的連接URL | |
javax.jdo.option.ConnectionUserName | 元數據庫連接用戶名 | |
javax.jdo.option.ConnectionPassword | 元數據庫連接密碼 |
比如如下的配置:
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://m000:3306/hive</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hiveuser</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hiveuser</value> <description>password to use against metastore database</description> </property>
在hive中,默認情況下新建的數據庫以及表都位于HDFS的hive.metastore.warehouse.dir
路徑下。如下圖分別顯示了數據庫,表,以及表文件在HDFS上的文件路徑
根據javax.jdo.option.ConnectionURL
中設置的數據庫,以及用戶名和密碼,hive就可以寫入和讀取其元數據信息。
連接元數據庫除了配置URL,username,password之外,還有一種間接的方式。可以在hive客戶端A上用hive --service metastore
啟動一個metastore服務,然后在另外一個hive客戶端B的hive-site.xml文件中配置hive.metastore.uris=thrift://A:9083
也可以訪問到元數據信息(9083端口為默認,可使用-p參數手動指定)。
這一節描述hive元數據庫中比較重要的一些表的作用,隨著后續對hive的使用逐漸補充更多的內容。
mysql元數據庫hive中的表:
表名 | 作用 |
---|---|
BUCKETING_COLS | 存儲bucket字段信息,通過SD_ID與其他表關聯 |
CDS | 一個字段CD_ID,與SDS表關聯 |
COLUMNS_V2 | 存儲字段信息,通過CD_ID與其他表關聯 |
DATABASE_PARAMS | 空 |
DBS | 存儲hive的database信息 |
DELETEME1410257703262 | 空 |
FUNCS | 空 |
FUNC_RU | 空 |
GLOBAL_PRIVS | 全局變量,與表無關 |
IDXS | 空 |
INDEX_PARAMS | 空 |
PARTITIONS | 分區記錄,SD_ID, TBL_ID關聯 |
PARTITION_KEYS | 存儲分區字段,TBL_ID關聯 |
PARTITION_KEY_VALS | 分區的值,通過PART_ID關聯。與PARTITION_KEYS共用同一個字段INTEGER_IDX來標示不同的分區字段。 |
PARTITION_PARAMS | 存儲某分區相關信息,包括文件數,文件大小,記錄條數等。通過PART_ID關聯 |
PART_COL_PRIVS | 空 |
PART_COL_STATS | 空 |
PART_PRIVS | 空 |
ROLES | 角色表,和GLOBAL_PRIVS配合,與表無關 |
SDS | 存儲輸入輸出format等信息,包括表的format和分區的format。關聯字段CD_ID,SERDE_ID |
SD_PARAMS | 空 |
SEQUENCE_TABLE | 存儲sqeuence相關信息,與表無關 |
SERDES | 存儲序列化反序列化使用的類 |
SERDE_PARAMS | 序列化反序列化相關信息,通過SERDE_ID關聯 |
SKEWED_COL_NAMES | 空 |
SKEWED_COL_VALUE_LOC_MAP | 空 |
SKEWED_STRING_LIST | 空 |
SKEWED_STRING_LIST_VALUES | 空 |
SKEWED_VALUES | 空 |
SORT_COLS | 排序字段,通過SD_ID關聯 |
TABLE_PARAMS | 表相關信息,是否外部表,通過TBL_ID關聯 |
TAB_COL_STATS | 空 |
TBLS | 存儲表信息,關聯字段DB_ID,SD_ID, |
TBL_COL_PRIVS | 空 |
TBL_PRIVS | 表賦權限相關信息,通過TBL_ID關聯 |
VERSION | 版本 |
VERSION_copy | 版本,通過VER_ID關聯 |
這里補充介紹hive的一個工具腳本metatool。如果需要大量修改元數據庫中的相關記錄,可以具體查看metatool腳本的使用方法。
比如說,對一個HDFS做HA的時候,如果之前hdfs完整路徑是hdfs://m000,做完HA之后把dfs.nameservices
設置為my-cluster
之后,hdfs的訪問路徑就變成了hdfs://my-cluster,此時就需要對hive元數據庫中所有記錄作更新,這時可以參考下面的操作,
使用metatool腳本,先是新路徑,然后是舊路徑 /usr/local/bigdata/hive/bin/metatool -updateLocation hdfs://my-cluster hdfs://m00
到此,相信大家對“hive的配置以及元數據庫表描述”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。