<<<<<<< HEAD 大数据元数据服务 Hive Metastore Service(以下简称 HMS)是一项单独的服务,不是 Hive 的一部分,甚至不必位于同一集群上。Hive 的元数据信息通常存储在关系型数据库中,常用 MySQL 数据库作为元数据库管理。 =======
HMS¶
metastore有两个意思,一是指存放元数据的地方,一般是用MySQL数据库,二是指metastore server。
大数据元数据服务 Hive Metastore Service(以下简称HMS)是一项单独的服务,不是Hive的一部分,甚至不必位于同一集群上。
1)内嵌模式:将元数据保存在本地内嵌的derby数据库中,内嵌的derby数据库每次只能访问一个数据文件,也就意味着它不支持多会话连接。
2)本地模式:将元数据保存在本地独立的数据库中(一般是mysql),这可以支持多会话连接。
3)远程模式:把元数据保存在远程独立的mysql数据库中,避免每个客户端都去安装mysql数据库。
Metastore 通过 DataNucleus(一个基于 Java JDO 的对象关系映射 (ORM) 层)将对象定义持久化到关系数据库 (RDBMS)
HMS服务
客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。
有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。
Metastore 有3种开启方式:
- 默认开启方式:
没有配置metaStore的时候,每当开启bin/hive;或者开启hiveServer2的时候,都会在内部启动一个metastore嵌入式服务;资源比较浪费,如果开启多个窗口,就会存在多个metastore server。
- local mataStore(本地)
当metaStore和装载元数据的数据库(MySQL)存在同一机器上时配置是此模式。
开启metastore服务就只需要开启一次就好,避免资源浪费!
- Remote Metastore(远程)
当metaStore和装载元数据的数据库(MySQL)不存在同一机器上时配置是此模式。
开启metastore服务就只需要开启一次就好,避免资源浪费!
4b6372e71813cbab1fd8bdd80e392779f311c66f
HMS 用于管理 hive 的元数据并提供服务。这里的元数据包括:数据库、表、表的模式、目录、分区、索引以及命名空间等。
HMS 可能是外部的独立数据库,所以它的性能也会影响到整个**HiveServer**的性能,主要包括**HiveMetaStore**访问时间,访问次数,连接并发数。
HMS 存储着数据仓库中所依赖的所有元数据并提供相应的查询服务。使得计算引擎(Hive、Spark、Presto)能在海量数据中准确访问到需要访问的具体数据,其在离线数仓的稳定构建上扮演着举足轻重的角色
<<<<<<< HEAD 为数据库创建的目录一般在 hive 数据仓库目录下。 =======
Hive 的元数据信息通常存储在关系型数据库中,常用MySQL数据库作为元数据库管理。
4b6372e71813cbab1fd8bdd80e392779f311c66f
Hive-Metastore 内各表作用
<<<<<<< HEAD | 表名 | 作用 | | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | DBS | database 信息 | | DATABASE_PARAMS | 数据库的相关参数 | | FUNCS | 用户注册的函数信息 | | FUNC_RU | 用户注册函数的资源信息 | | TBLS | 存储 Hive 表、试图、索引表的基本信息 | | TABLE_PARAMS | 表相关信息 | | TAB_COL_STATS | | | TBL_COL_PRIVS | | | TBL_PRIVS | | | IDXS | 索引表,存储 Hive 索引相关的元数据 | | INDEX_PARAMS | 索引相关的属性信息 | | BUCKETING_COLS | 存储 bucket 字段信息,通过 SD_ID 与其他表关联 | | CDS | 一个字段 CD_ID,与 SDS 表关联 | | COLUMNS_V2 | 存储字段信息,通过 CD_ID 与其他表关联 | | 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 | 分区的授权信息 | | SDS | 存储对应文件的基本信息,如 INPUT_FORMAT、OUTPUT_FORMAT、是否压缩等。TBLS 表中的 SD_ID 与该表关联,可以获取 Hive 表的存储信息。 | | SD_PARAMS | 该表存储 Hive 存储的属性信息 | | SORT_COLS | 排序字段,通过 SD_ID 关联 | | SERDES | 存储序列化反序列化使用的类 | | SERDE_PARAMS | 序列化反序列化相关信息,通过 SERDE_ID 关联 | | SKEWED_COL_NAMES | | | SKEWED_COL_VALUE_LOC_MAP | | | SKEWED_STRING_LIST | | | SKEWED_STRING_LIST_VALUES | | | SKEWED_VALUES | | | GLOBAL_PRIVS | 存储全局变量 | | ROLES | 角色表,和 GLOBAL_PRIVS 配合 | | VERSION | 存储 hive 的版本信息 | | SEQUENCE_TABLE | 存储 sqeuence 相关信息 | =======
HMS可能是外部的独立数据库,所以它的性能也会影响到整个**HiveServer**的性能,主要包括**HiveMetaStore**访问时间,访问次数,连接并发数。
HMS存储着数据仓库中所依赖的所有元数据并提供相应的查询服务。使得计算引擎(Hive、Spark、Presto)能在海量数据中准确访问到需要访问的具体数据,其在离线数仓的稳定构建上扮演着举足轻重的角色
为数据库创建的目录一般在hive数据仓库目录下。
https://www.cnblogs.com/convict/p/16575595.html
Hive-Metastore内各表作用
| 表名 | 作用 |
|---|---|
| DBS | database信息 |
| DATABASE_PARAMS | 数据库的相关参数 |
| FUNCS | 用户注册的函数信息 |
| FUNC_RU | 用户注册函数的资源信息 |
| TBLS | 存储Hive表、试图、索引表的基本信息 |
| TABLE_PARAMS | 表相关信息 |
| TAB_COL_STATS | |
| TBL_COL_PRIVS | |
| TBL_PRIVS | |
| IDXS | 索引表,存储Hive索引相关的元数据 |
| INDEX_PARAMS | 索引相关的属性信息 |
| BUCKETING_COLS | 存储bucket字段信息,通过SD_ID与其他表关联 |
| CDS | 一个字段CD_ID,与SDS表关联 |
| COLUMNS_V2 | 存储字段信息,通过CD_ID与其他表关联 |
| 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 | 分区的授权信息 |
| SDS | 存储对应文件的基本信息,如INPUT_FORMAT、OUTPUT_FORMAT、是否压缩等。TBLS表中的SD_ID与该表关联,可以获取Hive表的存储信息。 |
| SD_PARAMS | 该表存储Hive存储的属性信息 |
| SORT_COLS | 排序字段,通过SD_ID关联 |
| SERDES | 存储序列化反序列化使用的类 |
| SERDE_PARAMS | 序列化反序列化相关信息,通过SERDE_ID关联 |
| SKEWED_COL_NAMES | |
| SKEWED_COL_VALUE_LOC_MAP | |
| SKEWED_STRING_LIST | |
| SKEWED_STRING_LIST_VALUES | |
| SKEWED_VALUES | |
| GLOBAL_PRIVS | 存储全局变量 |
| ROLES | 角色表,和GLOBAL_PRIVS配合 |
| VERSION | 存储hive的版本信息 |
| SEQUENCE_TABLE | 存储sqeuence相关信息 |
| >>>>>>> 4b6372e71813cbab1fd8bdd80e392779f311c66f |