4.4.2. Hive メタストアに MySQL または PostgreSQL を使用する

メータリングのデフォルトインストールは、Hive を Derby という組み込み Java データベースを使用するすように設定します。これは大規模な環境には適していませんが、MySQL または PostgreSQL データベースのいずれかに置き換えることができます。デプロイメントで Hive に MySQL または PostgreSQL データベースが必要な場合は、以下の設定ファイルのサンプルを使用します。

3 つの設定オプションを使用して、Hive メタストアで使用されるデータベースを制御できます (urldriver、および secretName)。

ユーザー名とパスワードで MySQL または Postgres インスタンスを作成します。次に、OpenShift CLI (oc) または YAML ファイルを使用してシークレットを作成します。このシークレット用に作成する secretName は、MeteringConfig オブジェクトリソースの spec.hive.spec.config.db.secretName フィールドにマップする必要があります。

手順

  1. 次に、OpenShift CLI (oc) または YAML ファイルを使用してシークレットを作成します。

    • 以下のコマンドを使用してシークレットを作成します。

      $ oc --namespace openshift-metering create secret generic <YOUR_SECRETNAME> --from-literal=username=<YOUR_DATABASE_USERNAME> --from-literal=password=<YOUR_DATABASE_PASSWORD>
    • YAML ファイルを使用してシークレットを作成します。以下は例になります。

      apiVersion: v1
      kind: Secret
      metadata:
        name: <YOUR_SECRETNAME> 1
      data:
        username: <BASE64_ENCODED_DATABASE_USERNAME> 2
        password: <BASE64_ENCODED_DATABASE_PASSWORD> 3
      1
      シークレットの名前。
      2
      base64 でエンコードされたデータベースのユーザー名。
      3
      base64 でエンコードされたデータベースのパスワード。
  2. 設定ファイルを作成して、Hive に MySQL または PostgreSQL データベースを使用します。

    • Hive に MySQL データベースを使用するには、以下の設定ファイルのサンプルを使用します。メータリングでは、MySQL サーバーのバージョン 5.6、5.7、および 8.0 を使用するように内部 Hive メタストアを設定できます。

      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
      注記

      5.6 や 5.7 などの古い MySQL サーバーバージョンで動作するようにメータリングを設定する場合、内部 Hive メタストアを設定する際に enabledTLSProtocols JDBC URL パラメーターを追加する必要がある場合があります。

      1
      TLS v1.2の暗号スイートを使用するには、url「jdbc:mysql://<hostname>:<port>/<schema>?enabledTLSProtocols=TLSv1.2」に設定します。
      2
      base64 で暗号化されたユーザー名およびパスワードのデータベース認証情報が含まれるシークレットの名前。

      spec.hive.config.url を使用して追加の JDBC パラメーターを渡すことができます。詳細は、MySQL Connector/J 8.0 のドキュメントを参照してください。

    • 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"

      spec.hive.config.url を使用して追加の JDBC パラメーターを渡すことができます。詳細は、PostgreSQL JDBC ドライバーのドキュメントを参照してください。