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

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

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

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

OpenShift CLI でシークレットを作成するには、以下のコマンドを使用できます。

$ 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 でエンコードされたデータベースのパスワード。

以下の設定ファイルのサンプルを使用して、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 で暗号化されたユーザー名およびパスワードのデータベース認証情報が含まれるシークレットの名前。

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 ドライバーのドキュメント を参照してください。