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

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

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

始める前に

必要なロール

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

  • すべての Dataproc Metastore リソースに対する完全アクセス権を付与するには、次のいずれかを行います。
  • Dataproc クラスタを作成する場合: Dataproc VM サービス アカウントに対する(roles/dataproc.worker
  • Hive ウェアハウス ディレクトリへの読み取り / 書き込み権限を付与する場合: Dataproc VM サービス アカウントに対する(roles/storage.objectAdmin

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

これらの事前定義ロールには、Dataproc Metastore と Dataproc クラスタの作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

Dataproc Metastore と Dataproc クラスタを作成するには、次の権限が必要です。

  • Dataproc Metastore を作成するには: ユーザー アカウントまたはサービス アカウントの metastore.services.create
  • Dataproc クラスタを作成するには: ユーザー アカウントまたはサービス アカウントに対する dataproc.clusters.create
  • Hive ウェアハウス ディレクトリにアクセスするには: Dataproc VM サービス アカウント に対する orgpolicy.policy.get1,resourcemanager.projects.get,resourcemanager.projects.list,storage.objects.*,storage.multipartUploads.*

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

Dataproc Metastore の特定のロールと権限については、IAM によるアクセス管理をご覧ください。

Dataproc クラスタ

Dataproc は、オープンソースのデータツールを利用したバッチ処理、クエリ実行、ストリーミング、ML を可能にする Apache Spark / Apache Hadoop サービスです。

考慮事項

Dataproc クラスタを作成して接続する前に、Dataproc Metastore サービスが使用しているエンドポイント プロトコルを確認します。このプロトコルは、Hive Metastore クライアントが Dataproc Metastore に保存されているメタデータにアクセスする方法を定義します。この選択は、サービスと統合して使用できる機能にも影響します。

Apache Thrift

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

  • デフォルトでは、Dataproc クラスタと Dataproc Metastore サービスを同じネットワークに作成する必要があります。Dataproc クラスタは、Dataproc Metastore サービスのネットワークのサブネットを使用することもできます。

  • Dataproc クラスタがネットワークとは異なるプロジェクトに属している場合は、共有ネットワーク権限を構成する必要があります。

  • Dataproc クラスタが Dataproc Metastore サービスとは異なるプロジェクトに属している場合は、Dataproc クラスタを作成する前に追加の権限を設定する必要があります。

gRPC

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

  • gRPC エンドポイント プロトコルを使用して Dataproc Metastore を作成したら、追加の IAM ロールを付与する必要があります。

  • Dataproc 個人クラスタ認証を使用している場合、Dataproc Metastore は gRPC エンドポイント プロトコルを使用する必要があります。

  • Dataproc クラスタが Dataproc Metastore サービスとは異なるプロジェクトに属している場合は、Dataproc クラスタを作成する前に追加の権限を設定する必要があります。

クラスタを作成して Dataproc Metastore を接続する

次の手順では、Dataproc クラスタを作成し、Dataproc Metastore サービスからクラスタに接続する方法を示します。これらの手順は、Dataproc Metastore サービスを作成していることを前提としています。

  • Dataproc クラスタを作成する前に、選択した Dataproc イメージが、Dataproc Metastore の作成時に選択した Hive メタストア バージョンと互換性があることを確認します。詳細については、Dataproc イメージ バージョン リストをご覧ください。
  • ネットワーク接続を最適化するには、Dataproc Metastore サービスと同じリージョンに Dataproc クラスタを作成します。

Console

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

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

  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: 新しい Dataproc クラスタの名前。
  • PROJECT_ID: Dataproc Metastore サービスを作成したプロジェクトのプロジェクト ID。
  • LOCATION: Dataproc Metastore サービスを作成したリージョンと同じリージョン。
  • SERVICE: クラスタに接続する Dataproc Metastore サービスの名前。
  • SCOPES: (省略可)Dataproc Metastore サービスが gRPC エンドポイント プロトコルを使用する場合は、cloud-platform を使用します。

REST

API Explorer を使用し、API の手順に従ってクラスタを作成します。

Dataproc クラスタ プロパティを使用してクラスタを接続する

Dataproc プロパティを使用して、Dataproc クラスタを Dataproc Metastore に接続することもできます。これらのプロパティには、Dataproc Metastore の ENDPOINT_URIWAREHOUSE_DIR が含まれます。

Dataproc Metastore サービスが Private Service Connect を使用している場合、または Dataproc クラスタを Dataproc Metastore サービスの補助バージョンに接続する必要がある場合は、次の手順を使用します。

ENDPOINT_URI プロパティと WAREHOUSE_DIR プロパティを使用して Dataproc クラスタを接続する方法は 2 つあります。

オプション 1: Dataproc クラスタの作成時

Dataproc クラスタを作成するときに、次の 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 ファイルを直接変更して、Dataproc クラスタを接続することもできます。

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

以下を置き換えます。

次のステップ