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 クラスタを作成するには:
(
roles/dataproc.worker) Managed Service for Apache Spark VM サービス アカウントに対する -
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 ロールを付与する必要があります。
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 クラスタを作成します。
コンソール
コンソールで、Managed Service for Apache Spark の [クラスタの作成] ページを開きます。 Google Cloud
[クラスタの作成] を開く
[クラスタ名] フィールドに、クラスタの名前を入力します。
[リージョン] メニューと [ゾーン] メニューで、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 に接続することもできます。
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 クラスタを接続することもできます。
.*-mクラスタに SSH を使用して 接続します。/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 ウェアハウス ディレクトリのロケーション。