4.4.2. Hive メタストアに MySQL または PostgreSQL を使用する
メータリングのデフォルトインストールは、Hive を Derby という組み込み Java データベースを使用するすように設定します。これは大規模な環境には適していませんが、MySQL または PostgreSQL データベースのいずれかに置き換えることができます。デプロイメントで Hive に MySQL または PostgreSQL データベースが必要な場合は、以下の設定ファイルのサンプルを使用します。
3 つの設定オプションを使用して、Hive メタストアで使用されるデータベースを制御できます (url、driver、および secretName)。
ユーザー名とパスワードで MySQL または Postgres インスタンスを作成します。次に、OpenShift CLI (oc) または YAML ファイルを使用してシークレットを作成します。このシークレット用に作成する secretName は、MeteringConfig オブジェクトリソースの spec.hive.spec.config.db.secretName フィールドにマップする必要があります。
手順
次に、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
設定ファイルを作成して、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 メタストアを設定する際に
enabledTLSProtocolsJDBC URL パラメーター を追加する必要がある場合があります。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 ドライバーのドキュメント を参照してください。