4.4.2. 为 Hive metastore 使用 MySQL 或 PostgreSQL
默认安装的 metering 会把 Hive 配置为使用名为 Derby 的嵌入式 Java 数据库。该配置不适用于较大环境,它可以被替换为使用 MySQL 或 PostgreSQL 数据库。如果您的部署需要 Hive 使用 MySQL 或 PostgreSQL 数据库,则请使用以下配置示例文件。
有三个配置选项可用来控制 Hive metastore 使用的数据库: url
、driver
和 secretName
。
使用用户名和密码创建 MySQL 或 Postgres 实例。然后使用 OpenShift CLI(oc
) 或 YAML 文件创建 secret。您为此 secret 创建的 secretName
必须映射到 MeteringConfig
对象资源中的 spec.hive.spec.config.db.secretName
字段。
流程
使用 OpenShift CLI(
oc
)或使用 YAML 文件创建 secret:使用以下命令创建 secret:
$ oc --namespace openshift-metering create secret generic <YOUR_SECRETNAME> --from-literal=username=<YOUR_DATABASE_USERNAME> --from-literal=password=<YOUR_DATABASE_PASSWORD>
使用 YAML 文件创建 secret。例如:
apiVersion: v1 kind: Secret metadata: name: <YOUR_SECRETNAME> 1 data: username: <BASE64_ENCODED_DATABASE_USERNAME> 2 password: <BASE64_ENCODED_DATABASE_PASSWORD> 3
创建配置文件以将 MySQL 或 PostgreSQL 数据库用于 Hive:
要将 MySQL 数据库用于 Hive,请使用以下示例配置文件。Metering 支持将内部 Hive metastore 配置为使用 MySQL 服务器版本 5.6、5.7 和 8.0。
spec: hive: spec: metastore: storage: create: false config: db: url: "jdbc:mysql://mysql.example.com:3306/hive_metastore" 1 driver: "com.mysql.cj.jdbc.Driver" secretName: "REPLACEME" 2
注意当将 Metering 配置为使用旧的 MySQL 服务器版本时,如 5.6 或 5.7 时,您可能需要在配置内部 Hive metastore 时添加 enabledTLSProtocols
JDBC
URL 参数。您可使用
spec.hive.config.url
来传递其他 JDBC 参数。如需了解更多详细信息,请参阅 MySQL Connector/J 8.0 文档。要将 PostgreSQL 数据库用于 Hive,请使用以下示例配置文件:
spec: hive: spec: metastore: storage: create: false config: db: url: "jdbc:postgresql://postgresql.example.com:5432/hive_metastore" driver: "org.postgresql.Driver" username: "REPLACEME" password: "REPLACEME"
您可使用
spec.hive.config.url
来传递其他 JDBC 参数。如需了解更多详细信息,请参阅 PostgreSQL JDBC 驱动程序文档。