Dataproc Metastore サービスを作成したら、次のサービスを接続できます。
- Managed Service for Apache Spark クラスタ。
- セルフマネージドの Apache Hive インスタンス、Apache Spark インスタンス、または Presto クラスタ。
これらのサービスのいずれかに接続すると、クエリの実行時に Dataproc Metastore サービスが Hive メタストアとして使用されます。
始める前に
- プロジェクトで Dataproc Metastore を有効にします。
- Dataproc Metastore サービスを作成します。
- プロジェクトに特有のネットワーキング要件を理解します。
必要なロール
Dataproc Metastore と Managed Service for Apache Spark クラスタの作成に必要な権限を取得するには、管理者に次の IAM ロールの付与を依頼してください。
-
すべての Dataproc Metastore リソースに対する完全アクセス権を付与するには、次のいずれかを行います。
- ユーザー アカウントまたはサービス アカウントに対する Dataproc Metastore 編集者 (
roles/metastore.editor) - ユーザー アカウントまたはサービス アカウントに対する Dataproc Metastore 管理者 (
roles/metastore.admin)
- ユーザー アカウントまたはサービス アカウントに対する Dataproc Metastore 編集者 (
-
Managed Service for Apache Spark クラスタを作成するには: Managed Service for Apache Spark VM サービス アカウントに対する(
roles/dataproc.worker) -
Hive ウェアハウス ディレクトリへの読み取り / 書き込み権限を付与する場合:
(
roles/storage.objectAdmin) Managed Service for Apache Spark VM サービス アカウントに対して
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、Dataproc Metastore と Managed Service for Apache Spark クラスタの作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Dataproc Metastore と Managed Service for Apache Spark クラスタを作成するには、次の権限が必要です。
- Dataproc Metastore を作成するには: ユーザー アカウントまたはサービス アカウントに対する metastore.services.create
- Managed Service for Apache Spark クラスタを作成するには: ユーザー アカウントまたはサービス アカウントに対する dataproc.clusters.create
-
Hive ウェアハウス ディレクトリにアクセスするには:
Managed Service for Apache Spark VM サービス アカウントに対する
orgpolicy.policy.get1、resourcemanager.projects.get、resourcemanager.projects.list、storage.objects.*、storage.multipartUploads.*
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Dataproc Metastore の特定のロールと権限については、IAM によるアクセス管理をご覧ください。Managed Service for Apache Spark クラスタ
Managed Service for Apache Spark は、オープンソースのデータツールを利用したバッチ処理、クエリ実行、ストリーミング、ML を可能にする Apache Spark / Apache Hadoop サービスです。
考慮事項
Managed Service for Apache Spark クラスタを作成して接続する前に、Dataproc Metastore サービスで使用されているエンドポイント プロトコルを確認します。このプロトコルは、Hive Metastore クライアントが Dataproc Metastore に保存されているメタデータにアクセスする方法を定義します。この選択は、サービスに統合して使用できる機能にも影響する可能性があります。
Apache Thrift
Apache Thrift エンドポイント プロトコルを使用する場合は、次のネットワーク要件を考慮してください。
デフォルトでは、Managed Service for Apache Spark クラスタと Dataproc Metastore サービスは同じネットワーク上に作成する必要があります。Managed Service for Apache Spark クラスタは、Dataproc Metastore サービスのネットワークのサブネットを使用することもできます。
Managed Service for Apache Spark クラスタがネットワークとは異なるプロジェクトに属している場合は、共有ネットワークの権限を構成する必要があります。
Managed Service for Apache Spark クラスタが Dataproc Metastore サービスとは異なるプロジェクトに属している場合は、Managed Service for Apache Spark クラスタを作成する前に追加の権限を設定する必要があります。
gRPC
gRPC エンドポイント プロトコルを使用する場合は、次のネットワーク要件を考慮してください。
gRPC エンドポイント プロトコルを使用して Dataproc Metastore を作成したら、追加の IAM ロールを付与する必要があります。
Dataproc 個人用クラスタ認証を使用している場合、Dataproc Metastore は gRPC エンドポイント プロトコルを使用する必要があります。
Managed Service for Apache Spark クラスタが Dataproc Metastore サービスとは異なるプロジェクトに属している場合は、Managed Service for Apache Spark クラスタを作成する前に追加の権限を設定する必要があります。
クラスタを作成して Dataproc Metastore を接続する
次の手順では、Managed Service for Apache Spark クラスタを作成し、Dataproc Metastore サービスから接続する方法を示します。これらの手順は、Dataproc Metastore サービスを作成していることを前提としています。
- Managed Service for Apache Spark クラスタを作成する前に、選択した Managed Service for Apache Spark イメージが、Dataproc Metastore の作成時に選択した Hive メタストアのバージョンと互換性があることを確認してください。詳細については、Managed Service for Apache Spark イメージ バージョン リストをご覧ください。
ネットワーク接続を最適化するには、Dataproc Metastore サービスと同じリージョンに Managed Service for Apache Spark クラスタを作成します。
コンソール
Google Cloud コンソールで、Managed Service for Apache Spark の [クラスタの作成] ページを開きます。
[クラスタを作成] を開きます。
[クラスタ名] フィールドに、クラスタの名前を入力します。
[リージョン] メニューと [ゾーン] メニューで、Dataproc Metastore サービスを作成したリージョンと同じリージョンを選択します。任意のゾーンを選択できます。
[クラスタをカスタマイズ] タブをクリックします。
[ネットワーク構成] セクションで、Dataproc Metastore サービスを作成したネットワークと同じネットワークを選択します。
[Dataproc Metastore] セクションで、アタッチする Dataproc Metastore サービスを選択します。まだ作成していない場合は、[新しいサービスを作成] を選択します。
省略可: Dataproc Metastore サービスが gRPC エンドポイント プロトコルを使用している場合:
- [セキュリティを管理] タブをクリックします。
- [プロジェクト アクセス] セクションで、[このクラスタのクラウド プラットフォーム スコープを有効にする] を選択します。
必要に応じて、残りのサービス オプションを構成します。
クラスタを作成するには、[作成] をクリックします。
新しいクラスタが [クラスタ] リストに表示されます。クラスタが使用可能になるまで、クラスタのステータスは [プロビジョニング] と表示されます。使用準備が整うと、ステータスが [実行中] に変わります。
gcloud CLI
クラスタを作成して Dataproc Metastore を接続するには、次の gcloud dataproc clusters create コマンドを実行します。
gcloud dataproc clusters create CLUSTER_NAME \
--dataproc-metastore=projects/PROJECT_ID/locations/LOCATION/services/SERVICE \
--region=LOCATION \
--scopes=SCOPES次のように置き換えます。
CLUSTER_NAME: 新しい Managed Service for Apache Spark クラスタの名前。PROJECT_ID: Dataproc Metastore サービスを作成したプロジェクトのプロジェクト ID。LOCATION: Dataproc Metastore サービスを作成したリージョン。SERVICE: クラスタに接続する Dataproc Metastore サービスの名前。SCOPES:(省略可)Dataproc Metastore サービスが gRPC エンドポイント プロトコルを使用している場合は、cloud-platformを使用します。
REST
API Explorer を使用し、API の手順に従ってクラスタを作成します。
Managed Service for Apache Spark クラスタのプロパティを使用してクラスタを接続する
Managed Service for Apache Spark プロパティを使用して、Managed Service for Apache Spark クラスタを Dataproc Metastore に接続することもできます。これらのプロパティには、Dataproc Metastore の ENDPOINT_URI と WAREHOUSE_DIR が含まれます。
Dataproc Metastore サービスが Private Service Connect を使用している場合、または Managed Service for Apache Spark クラスタを Dataproc Metastore サービスの補助バージョンに接続する必要がある場合は、次の手順を使用します。
ENDPOINT_URI プロパティと WAREHOUSE_DIR プロパティを使用して Managed Service for Apache Spark クラスタを接続するには、次の 2 つの方法があります。
オプション 1: Managed Service for Apache Spark クラスタの作成時
Managed Service for Apache Spark クラスタを作成するときに、次の Hive 構成で properties フラグを使用します。
gcloud dataproc clusters create CLUSTER_NAME \
--properties="hive:hive.metastore.uris=ENDPOINT_URI,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR/hive-warehouse"次のように置き換えます。
CLUSTER_NAME: 新しい Managed Service for Apache Spark クラスタの名前。ENDPOINT_URI: Dataproc Metastore サービスのエンドポイント URI。WAREHOUSE_DIR: Hive ウェアハウス ディレクトリのロケーション。
オプション 2: hive-site.xml ファイルを更新する
クラスタの hive-site.xml ファイルを直接変更して、Managed Service for Apache Spark クラスタを接続することもできます。
- SSH を使用して
.*-mクラスタに接続します。 /etc/hive/conf/hive-site.xmlファイルを開き、次の行を変更します。<property> <name>hive.metastore.uris</name> <!-- Update this value. --> <value>ENDPOINT_URI</value> </property> <!-- Add this property entry. --> <property> <name>hive.metastore.warehouse.dir</name> <value>WAREHOUSE_DIR</value> </property>以下を置き換えます。
ENDPOINT_URI: Dataproc Metastore サービスのエンドポイント URI。WAREHOUSE_DIR: Hive ウェアハウス ディレクトリのロケーション。
HiveServer2 を再起動します。
sudo systemctl restart hive-server2.service
セルフマネージド クラスタ
セルフマネージド クラスタは、Apache Hive インスタンス、Apache Spark インスタンス、または Presto クラスタにできます。
セルフマネージド クラスタを接続する
クライアント構成ファイルに次の値を設定します。
hive.metastore.uris=ENDPOINT_URIhive.metastore.warehouse.dir=WAREHOUSE_DIR
以下を置き換えます。
ENDPOINT_URI: Dataproc Metastore サービスのエンドポイント URI。WAREHOUSE_DIR: Hive ウェアハウス ディレクトリのロケーション。