補助バージョン

このページでは、Dataproc Metastore で補助バージョン機能を使用する方法について説明します。

補助バージョンを使用すると、Hive メタストアの 2 つの異なるバージョンを単一の Dataproc Metastore サービスに接続できます。この構成では、異なる Hive メタストア バージョンで実行する必要がある複数のデータ処理エンジンをサポートできます。

たとえば、補助バージョンを使用すると、複数の Dataproc クラスタを同じ Dataproc Metastore サービスに接続できます。 この構成では、1 つのクラスタが Dataproc バージョン 2.0 を実行し、もう 1 つのクラスタが Dataproc バージョン 1.5 を実行できます。Dataproc 2.0 クラスタは、Hive バージョン 3.1.2 を公開するエンドポイントに接続できます。一方、Dataproc 1.5 クラスタは、Hive バージョン 2.3.6 を公開するエンドポイントに接続できます。

補助バージョンの仕組み

補助バージョンを有効にすると、Dataproc Metastore では Hive メタストア バージョンごとに個別のエンドポイントが公開されます。ただし、両方のエンドポイントで同じメタデータ データベースが引き続き共有されます。

この機能では、1 つの Dataproc Metastore サービスで異なるメタデータ セットを使用することはできません。代わりに、サービス間の互換性を拡張する方法を提供します。

考慮事項

全般

  • 補助バージョンは、Dataproc Metastore サービスごとに 1 つだけ作成できます。

  • 補助バージョンは、プライマリ バージョンよりも低い Hive メタストア バージョンを使用するように構成する必要があります。

  • 補助バージョンでは、プライマリ バージョンとは別のログファイルが維持されます。Hive メタストアの問題をデバッグするには、Cloud Logging を使用します。

機能サポート

  • 補助バージョンは、次の機能をサポートしていません。

  • 一部の Hive メソッドは、補助バージョンとプライマリ バージョンの間で互換性がない場合があります。互換性は、メイン バージョンと補助バージョンに使用している Hive のバージョンや、Hive バージョン間で互換性のあるメソッドによって異なります。

  • プライマリ Dataproc Metastore インスタンスのすべての機能が、補助バージョンでサポートされているわけではありません。たとえば、Hive トランザクション テーブルにレコードを挿入することは、補助バージョン 2.3.6 とやり取りする Hive 2 クライアントではサポートされていません。ただし、この操作は、プライマリ バージョン 3.1.2 とやり取りする Hive 3 クライアントでサポートされています。

    下位の Hive バージョンの機能が上位 Hive バージョンで非推奨になった場合、対応する下位補助バージョンは非推奨機能をサポートしません。たとえば、Hive 2 はインデックスをサポートしていますが、Hive 2.3.6 を実行する補助バージョンでは、プライマリ バージョンが Hive 3.1.2 を実行している場合、インデックスはサポートされません。

  • 補助バージョンを使用してトランザクション テーブルを作成したり、補助バージョンでトランザクション テーブルにデータを挿入したりすることはできません。

バージョン間での共有プロパティ

補助バージョンを作成すると、一部のプロパティが共有され、補助バージョンとメイン バージョンで共通となります。他のプロパティは共有されず、両方のバージョンで区別されます。

次の表に、これらの違いを示します。

プロパティ 一般的な 別途
エンドポイント
Hive 構成のオーバーライド*
Kerberos config
エンドポイント プロトコル(Thrift/gRPC)
Thrift ポート
Artifacts Cloud Storage バケット
ティア
メンテナンス時間枠
リリース チャンネル
Encryption config
データベースの種類
Data Catalog の同期の切り替え
リクエスト数の指標
ネットワークの構成

* Hive 構成のオーバーライドは、補助バージョンとプライマリ バージョンを区別します。ただし、補助バージョンは、オーバーライドの結合されたリスト(プライマリと補助)を参照します。この場合、補助構成はプライマリ構成よりも優先されます。

準備

必要なロール

補助バージョンを使用する Dataproc Metastore を作成するために必要な権限を取得するには、最小権限の原則に基づいて、プロジェクトに次の IAM ロールを付与するように管理者に依頼します。

ロールの付与の詳細については、アクセスの管理をご覧ください。

この事前定義ロールには、補助バージョンを使用する Dataproc Metastore を作成するために必要な metastore.services.create 権限が含まれています。

カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。

Dataproc Metastore の特定のロールと権限については、IAM による Dataproc のアクセス管理をご覧ください。

新しいサービスの補助バージョンを作成する

次の例は、補助バージョンを有効にする手順の短縮バージョンを示しています。遵守する必要があるプロセスごとの詳細な手順については、Dataproc Metastore を作成するをご覧ください。

Console

  1. Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。

    Dataproc Metastore を開く

  2. Dataproc Metastore ページの上部にある [作成] ボタンをクリックします。

    [Create service] ページが開きます。

  3. [補助バージョン構成] で、補助バージョンを有効にします。

  4. [補助バージョンを追加] をクリックします。

    1. 補助バージョンの名前を入力します。

    2. 補助バージョンのバージョンを選択します。

    3. 省略可: 補助バージョンにマッピングを適用するには、[+ オーバーライドを追加] をクリックします。

    4. [完了] をクリックします。

  5. 必要に応じて、サービスの残りの構成を選択します。

  6. [送信] をクリックします。

gcloud CLI

  1. Dataproc Metastore サービスを補助バージョンで作成するには、次の gcloud metastore services create コマンドのいずれかを実行します。

    gcloud metastore services create SERVICE \
        --location=LOCATION \
        --auxiliary-versions=AUXILIARY_VERSIONS, ...
    
    • SERVICE: Dataproc Metastore サービスの名前。
    • LOCATION: Dataproc Metastore サービスを作成するリージョン。
    • AUXILIARY_VERSIONS: 補助バージョンにデプロイする Hive メタストア バージョンのカンマ区切りのリスト。補助バージョンは 1 つだけです。 形式は次のようにします: "2.3.6"
    • AUXILIARY_VERSIONS_FROM_FILE: 補助バージョン構成を含む YAML ファイルへのパス。詳細と例については、SDK のドキュメントをご覧ください。
  2. 正常に作成されたことを確認します。

curl

補助バージョンで Dataproc Metastore サービスを作成するには、create メソッドを使用します。

curl -X POST -s -i \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -d '{"network":"projects/PROJECT_ID/global/networks/default", "port": 9083, "hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION"} } } }' \
     -H "Content-Type:application/json" \
     https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services?service_id=SERVICE_ID

以下を置き換えます。

  • SERVICE_ID: Dataproc Metastore サービスの名前。
  • PROJECT_ID: Dataproc Metastore サービスを作成している Google Cloud プロジェクト ID。
  • LOCATION: Dataproc Metastore が存在するリージョン。
  • AUX_VERSIONS: デプロイする Hive メタストア バージョンのカンマ区切りのリスト。補助バージョンは 1 つだけです。

既存のサービスの補助バージョンを更新する

次の手順は、補助バージョンを使用する既存の Dataproc Metastore サービスを更新する方法について説明します。

更新オペレーションを実行する際、次のタスクを実行できます。

  • 新しい補助バージョンを追加します。
  • 既存の補助バージョンを削除します。
  • 既存の補助バージョンのオーバーライドを追加または変更します。

Console

  1. Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。

    Dataproc Metastore を開く

  2. [Dataproc Metastore] ページで、更新するサービスのサービス名をクリックします。

    サービスの詳細ページが開きます。

  3. [設定] タブで [編集] をクリックします。

    [Edit service] ページが開きます。

  4. [補助バージョン構成] セクションで、切り替えボタンをクリックして補助バージョンを有効または無効にします。

    次のタスクを実行できます。

    1. 既存の補助バージョンを削除するには、[削除] をクリックします。

    2. 新しい補助バージョンを追加するには、[補助バージョンを追加] をクリックします。

    3. 補助マッピングにオーバーライド マッピングを適用するには、[+ オーバーライドを追加] をクリックします。

  5. [送信] をクリックします。

gcloud CLI

  1. 補助バージョンを使用する Dataproc Metastore サービスを更新するには、次の gcloud metastore services update コマンドのいずれかを実行します。

    gcloud metastore services update SERVICE \
       --location=LOCATION \
       --add-auxiliary-versions=AUXILIARY_VERSIONS, ...
    

    または

    gcloud metastore services update SERVICE \
       --location=LOCATION \
       --update-auxiliary-versions-from-file=AUXILIARY_VERSIONS_FROM_FILE
    

    以下を置き換えます。

    • SERVICE: Dataproc Metastore サービスの名前。
    • LOCATION: Dataproc Metastore が存在するリージョン。
    • AUXILIARY_VERSIONS: デプロイする補助 Hive メタストア バージョンのカンマ区切りのリスト。
    • AUXILIARY_VERSIONS_FROM_FILE: 補助バージョン構成を含む YAML ファイルへのパス。詳細と例については、SDK のドキュメントをご覧ください。
  2. 更新が正常に終了したことを確認します。

curl

補助バージョンを使用する Dataproc Metastore サービスを更新するには、patch メソッドを使用します。

curl -X PATCH -s -i \
   -H "Authorization: Bearer $(gcloud auth print-access-token)" \
   -d '{"hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION} } } }' \
   -H "Content-Type:application/json" \
   https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE_ID?update_mask=hive_metastore_config.auxiliary_versions

以下を置き換えます。

  • SERVICE_ID: Dataproc Metastore サービスの名前。
  • PROJECT_ID: Dataproc Metastore サービス クラスタを作成する Google Cloud プロジェクト ID。
  • LOCATION: Dataproc Metastore が存在するリージョン。
  • AUX_VERSIONS: デプロイする補助 Hive メタストア バージョンのカンマ区切りのリスト。

次のステップ