4.4.2. 为 Hive metastore 使用 MySQL 或 PostgreSQL


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

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

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

流程

  1. 使用 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
      1
      secret 的名称。
      2
      base64 编码的数据库用户名。
      3
      base64 编码的数据库密码。
  2. 创建配置文件以将 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 参数

      1
      要使用 TLS v1.2 密码套件,将 url 设置为 "jdbc:mysql://<hostname>:<port>/<schema>?enabledTLSProtocols=TLSv1.2"
      2
      包含 base64 加密用户名和密码数据库凭证的 secret 名称。

      您可使用 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 驱动程序文档

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.