3.4. Hive メタストアの設定

Hive メタストアは、Presto および Hive で作成されるデータベーステーブルに関するすべてのメタデータを保管します。デフォルトで、メタデータはこの情報を、Pod に割り当てられる PersistentVolume のローカルの組み込み Derby データベースに保管します。

通常、Hive メタストアのデフォルト設定は小規模なクラスターで機能しますが、ユーザーは Hive メタストアデータを格納するための専用の SQL データベースを使用することで、クラスターのパフォーマンスを改善したり、ストレージ要件の一部をクラスターから外したりできます。

3.4.1. PersistentVolume の設定

デフォルトで、Hive が動作するために 1 つの PersistentVolume が必要になります。

Hive-metastore-db-data は、デフォルトで必要となる主な PersistentVolumeClaim (PVC) です。この PVC は Hive メタストアによって、テーブル名、列、場所などのテーブルに関するメタデータを保存するために使用されます。Hive メタストアは、Presto および Hive サーバーによって、クエリーの処理時にテーブルメタデータを検索するために使用されます。この要件は、Hive メタストアデータベースに MySQL または PostgreSQL を使用することで削除できます。

インストールするには、Hive メタストアで StorageClass を使用して動的ボリュームプロビジョニングを有効にし、適切なサイズの永続ボリュームを手動で事前に作成するか、または既存の MySQL または PostgreSQL データベースを使用する必要があります。

3.4.1.1. Hive メタストア用のストレージクラスの設定

hive-metastore-db-data PVC に StorageClass を設定し、指定するには、StorageClass を MeteringConfig に指定します。StorageClass セクションのサンプルは以下の metastore-storage.yaml ファイルに含まれます。

apiVersion: metering.openshift.io/v1
kind: MeteringConfig
metadata:
  name: "operator-metering"
spec:
  hive:
    spec:
      metastore:
        storage:
          # Default is null, which means using the default storage class if it exists.
          # If you wish to use a different storage class, specify it here
          # class: "null" 1
          size: "5Gi"
1
この行のコメントを解除し、null を使用する StorageClass の名前に置き換えます。値を null のままにすると、メータリングはクラスターのデフォルトの StorageClass を使用します。

3.4.1.2. Hive メタストアのボリュームサイズの設定

以下の metastore-storage.yaml ファイルをテンプレートとして使用します。

apiVersion: metering.openshift.io/v1
kind: MeteringConfig
metadata:
  name: "operator-metering"
spec:
  hive:
    spec:
      metastore:
        storage:
          # Default is null, which means using the default storage class if it exists.
          # If you wish to use a different storage class, specify it here
          # class: "null"
          size: "5Gi" 1
1
size の値を必要な容量に置き換えます。このサンプルファイルは "5Gi" を示しています。

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

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

4 つの設定オプションを使用して、Hive メタストアで使用されるデータベースを制御できます (URL、ドライバー、ユーザー名、およびパスワード)。

以下の設定ファイルのサンプルを使用して、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"
          username: "REPLACEME"
          password: "REPLACEME"

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