4.4. 配置 Hive metastore
Metering 是一个已弃用的功能。弃用的功能仍然包含在 OpenShift Container Platform 中,并将继续被支持。但是,这个功能会在以后的发行版本中被删除,且不建议在新的部署中使用。
有关 OpenShift Container Platform 中已弃用或删除的主要功能的最新列表,请参阅 OpenShift Container Platform 发行注记中已弃用和删除的功能部分。
Hive metastore 负责存储所有在 Presto 和 Hive 中创建的数据库表的元数据。metastore 默认会将这些信息存储在附加到 pod 的持久性卷中的本地嵌入式 Derby 数据库中。
通常,Hive metastore 的默认配置适用于小型集群,但用户可能希望通过使用专用 SQL 数据库存储 Hive metastore 数据来提高性能或从集群中移出存储要求。
4.4.1. 配置持久性卷
Hive 默认需要一个持久性卷才可运行。
Hive-metastore-db-data
是默认需要的主持久性卷声明(PVC)。Hive metastore 使用该 PVC 存储与表相关的元数据,如表名称、列和位置。处理查询时,Presto 和 Hive 服务器可使用 Hive metastore 来查找表元数据。如果使用 MySQL 或 PostgreSQL 作为 Hive metastore 的数据库,则不需要这个要求。
为了进行安装,Hive metastore 要求在存储类中启用动态卷置备功能,一个有正确容量的持久性卷必须预先手动创建,或使用已存在的 MySQL 或 PostgreSQL 数据库。
4.4.1.1. 为 Hive metastore 配置存储类
要为 hive-metastore-db-data
持久性卷声明配置和指定存储类,请在 MeteringConfig
自定义资源中指定存储类。下面的 metastore-storage.yaml
文件中包含一个带有 class
字段的 storage
部分示例。
apiVersion: metering.openshift.io/v1
kind: MeteringConfig
metadata:
name: "operator-metering"
spec:
hive:
spec:
metastore:
storage:
# Default is null, which means using the default storage class if it exists.
# If you wish to use a different storage class, specify it here
# class: "null" 1
size: "5Gi"
- 1
- 取消此行的注释,并将
null
替换为要使用的存储类的名称。使用null
值会使 metering 使用集群的默认存储类。
4.4.1.2. 配置 Hive metastore 的卷大小
使用以下 metastore-storage.yaml
文件作为模板来配置 Hive metastore 的卷大小。
apiVersion: metering.openshift.io/v1
kind: MeteringConfig
metadata:
name: "operator-metering"
spec:
hive:
spec:
metastore:
storage:
# Default is null, which means using the default storage class if it exists.
# If you wish to use a different storage class, specify it here
# class: "null"
size: "5Gi" 1
- 1
- 将
size
值替换为您所需容量。示例文件显示“5Gi”。