4.4.2. 为 Hive metastore 使用 MySQL 或 PostgreSQL

默认安装的 metering 会把 Hive 配置为使用名为 Derby 的嵌入式 Java 数据库。该配置不适用于较大环境,它可以被替换为使用 MySQL 或 PostgreSQL 数据库。如果您的部署需要 Hive 使用 MySQL 或 PostgreSQL 数据库,则请使用以下配置示例文件。

有三个配置选项可用来控制 Hive metastore 使用的数据库: urldriversecretName

使用用户名和密码创建 MySQL 或 Postgres 实例。然后使用 OpenShift CLI 或 YAML 文件创建 secret。您为此 secret 创建的 secretName 必须映射到 MeteringConfig 资源中的 spec.hive.spec.config.db.secretName 字段。

运行以下命令在 OpenShift CLI 中创建 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
1
secret 的名称。
2
base64 编码的数据库用户名。
3
base64 编码的数据库密码。

使用以下示例配置文件配置 Hive 使用 MySQL 数据库:

spec:
  hive:
    spec:
      metastore:
        storage:
          create: false
      config:
        db:
          url: "jdbc:mysql://mysql.example.com:3306/hive_metastore"
          driver: "com.mysql.jdbc.Driver"
          secretName: "REPLACEME" 1
1
包含 base64 加密用户名和密码数据库凭证的 secret 名称。

您可使用 spec.hive.config.url 来传递其他 JDBC 参数。更多详情请参阅 MySQL Connector/J 文档

使用以下示例配置文件配置 Hive 使用 PostgreSQL 数据库:

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"

您可使用 URL 来传递其他 JDBC 参数。更多详情请参阅 PostgreSQL JDBC 驱动程序文档