Managed Service for Apache Spark クラスタまたはセルフマネージド クラスタを接続する

Dataproc Metastore サービスを作成したら、次のいずれかのサービスを接続できます。

これらのサービスのいずれかに接続すると、クエリの実行時に Dataproc Metastore サービスが Hive メタストアとして使用されます。

始める前に

必要なロール

Dataproc Metastore と Managed Service for Apache Spark クラスタの作成に必要な権限を取得するには、管理者に次の IAM ロールの付与を依頼します。

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

これらの事前定義ロールには 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 ウェアハウス ディレクトリにアクセスするには: orgpolicy.policy.get1,resourcemanager.projects.get,resourcemanager.projects.list,storage.objects.*,storage.multipartUploads.* Managed Service for Apache Spark VM サービス アカウント

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

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 エンドポイント プロトコルを使用する場合は、次のネットワーク要件を考慮してください。

gRPC

gRPC エンドポイント プロトコルを使用する場合は、次のネットワーク要件を考慮してください。

クラスタを作成して 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 クラスタを作成します。

コンソール

  1. コンソールで、Managed Service for Apache Spark の [クラスタの作成] ページを開きます。 Google Cloud

    [クラスタの作成] を開く

  2. [クラスタ名] フィールドに、クラスタの名前を入力します。

  3. [リージョン] メニューと [ゾーン] メニューで、Dataproc Metastore サービスを作成したリージョンと同じリージョンを選択します。 任意のゾーンを選択できます。

  4. [クラスタをカスタマイズ] タブをクリックします。

  5. [ネットワークの構成] セクションで、Dataproc Metastore サービスを作成したのと同じネットワークを選択します。

  6. [Dataproc Metastore] セクションで、接続する Dataproc Metastore サービスを選択します。まだ作成していない場合は、[新しいサービスを作成] を選択します。

  7. 省略可: Dataproc Metastore サービスが gRPC エンドポイント プロトコルを使用している場合:

    1. [セキュリティを管理] タブをクリックします。
    2. [プロジェクトのアクセス] セクションで、[このクラスタのクラウド プラットフォーム スコープを有効にする] を選択します。
  8. 必要に応じて、残りのサービス オプションを構成します。

  9. クラスタを作成するには、[作成] をクリックします。

    新しいクラスタが [クラスタ] リストに表示されます。クラスタを使用できる状態になるまで、クラスタのステータスは [プロビジョニング中 ] と表示されます。使用できる状態になると、ステータスが [実行中 ] に変わります。

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_URIWAREHOUSE_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"

以下を置き換えます。

オプション 2: hive-site.xml ファイルを更新する

クラスタの hive-site.xml ファイルを直接変更して、Managed Service for Apache Spark クラスタを接続することもできます。

  1. .*-m クラスタに SSH を使用して 接続します。
  2. /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>
    

    以下を置き換えます。

  3. HiveServer2 を再起動します。

    sudo systemctl restart hive-server2.service
    

セルフマネージド クラスタ

セルフマネージド クラスタは、Apache Hive インスタンス、 Apache Spark インスタンス、 または Presto クラスタにできます。

セルフマネージド クラスタを接続する

クライアント構成ファイルに次の値を設定します。

hive.metastore.uris=ENDPOINT_URI
hive.metastore.warehouse.dir=WAREHOUSE_DIR

以下を置き換えます。

次のステップ