このページでは、Dataproc Metastore で補助バージョン機能を使用する方法について説明します。
補助バージョンを使用すると、2 つの異なるバージョンの Hive メタストアを単一の Dataproc Metastore サービスに接続できます。この構成により、異なる Hive メタストア バージョンで実行する必要がある複数のデータ処理エンジンをサポートできます。
たとえば、補助バージョンを使用すると、複数の Dataproc クラスタを同じ Dataproc Metastore サービスに接続できます。 この構成では、一方のクラスタで Dataproc バージョン 2.0 を実行し、もう一方のクラスタで 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 インスタンスのすべての関数が補助バージョンでサポートされているわけではありません。たとえば、Hive トランザクション テーブルへのレコードの挿入は、補助バージョン 2.3.6 とインターフェースする Hive 2 クライアントではサポートされていません。ただし、この操作は、プライマリ バージョン 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 リソースに対する完全アクセス権を付与する(
roles/metastore.editor
) -
IAM ポリシー管理を含むすべての Dataproc Metastore リソースに対する完全アクセス権を付与する(
roles/metastore.admin
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
この事前定義ロールには、補助バージョンを使用する Dataproc Metastore を作成するために必要な metastore.services.create
権限が含まれています。
カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。
Dataproc Metastore の特定のロールと権限については、IAM による Dataproc のアクセス管理をご覧ください。新しいサービスの補助バージョンを作成する
次の例は、補助バージョンを有効にするための手順の簡略版を示しています。遵守する必要があるプロセスごとの詳細な手順については、Dataproc Metastore を作成するをご覧ください。
Console
Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。
Dataproc Metastore ページの上部にある [作成] ボタンをクリックします。
[Create service] ページが開きます。
[補助バージョン構成] で、補助バージョンを有効にします。
[補助バージョンを追加] をクリックします。
補助バージョンの名前を入力します。
補助バージョンのバージョンを選択します。
省略可: 補助バージョンにマッピングを適用するには、[+ オーバーライドを追加] をクリックします。
[完了] をクリックします。
必要に応じて、サービスの残りの構成を選択します。
[送信] をクリックします。
gcloud CLI
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 のドキュメントをご覧ください。
正常に作成されたことを確認します。
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
Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。
[Dataproc Metastore] ページで、更新するサービスのサービス名をクリックします。
サービスの詳細ページが開きます。
[構成] タブで [編集] をクリックします。
[Edit service] ページが開きます。
[補助バージョン構成] セクションで、切り替えボタンをクリックして補助バージョンを有効または無効にします。
次のタスクを完了できます。
既存の補助バージョンを削除するには、[削除] をクリックします。
新しい補助バージョンを追加するには、[補助バージョンを追加] をクリックします。
オーバーライド マッピングを補助バージョンに適用するには、[+ オーバーライドを追加] をクリックします。
[送信] をクリックします。
gcloud CLI
補助バージョンを使用する 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 のドキュメントをご覧ください。
更新が正常に終了したことを確認します。
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 メタストアのバージョンのカンマ区切りリスト。