このページでは、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 リソースに対する完全アクセス権を付与する (
roles/metastore.editor) -
IAM ポリシー管理を含むすべての Dataproc Metastore リソースに対する完全アクセス権を付与する (
roles/metastore.admin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
この事前定義ロールには、補助バージョンを使用する Dataproc Metastore を作成するために必要な metastore.services.create 権限が含まれています。
カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。
Dataproc Metastore の特定のロールと権限については、IAM による Dataproc のアクセス管理をご覧ください。新しいサービスの補助バージョンを作成する
次の例は、補助バージョンを有効にする手順の省略版を示しています。遵守する必要があるプロセスごとの詳細な手順については、Dataproc Metastore を作成するをご覧ください。
コンソール
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 Metastore バージョンのカンマ区切りのリスト。補助バージョンは 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 サービスを更新する方法を説明します。
更新オペレーションを実行すると、次のタスクを完了できます。
- 新しい補助バージョンを追加します。
- 既存の補助バージョンを削除します。
既存の補助バージョンのオーバーライドを追加または変更します。
コンソール
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 Metastore バージョンのカンマ区切りリスト。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 Metastore バージョンのカンマ区切りリスト。