補助バージョン

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

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

たとえば、補助バージョンを使用すると、複数の 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 メタストア バージョンごとに個別のエンドポイントを公開します。ただし、両方のエンドポイントは同じメタデータ データベースを共有し続けます。

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

考慮事項

全般

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

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

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

機能サポート

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

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

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

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

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

バージョン間で共有されるプロパティ

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

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

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

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

準備

必要なロール

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

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

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

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

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

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

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

コンソール

  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 Metastore バージョンのカンマ区切りのリスト。補助バージョンは 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 サービスを更新する方法を説明します。

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

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

コンソール

  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 Metastore バージョンのカンマ区切りリスト。
    • 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 Metastore バージョンのカンマ区切りリスト。

次のステップ