4.4. Hive メタストアの設定


重要

メータリングは非推奨の機能です。非推奨の機能は依然として OpenShift Container Platform に含まれており、引き続きサポートされますが、本製品の今後のリリースで削除されるため、新規デプロイメントでの使用は推奨されません。

OpenShift Container Platform で非推奨となったか、または削除された主な機能の最新の一覧については、OpenShift Container Platform リリースノートの 非推奨および削除された機能セクションを参照してください。

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

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

4.4.1. 永続ボリュームの設定

デフォルトで、Hive が動作するために 1 つの永続ボリュームが必要になります。

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

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

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

hive-metastore-db-data 永続ボリューム要求にストレージクラスを設定し、指定するには、ストレージクラスを MeteringConfig カスタムリソースに指定します。以下は、class フィールドが metastore-storage.yaml ファイルに含まれた storage セクションのサンプルになります。

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 を使用するストレージクラスの名前に置き換えます。値 null をそのままにすると、メータリングはクラスターのデフォルトのストレージクラスを使用します。

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

以下の metastore-storage.yaml ファイルをテンプレートとして使用し、Hive メタストアのボリュームサイズを設定します。

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" を示しています。

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

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.