サービスの作成

Dataproc Metastore サービスを作成するには、ローカル ブラウザで開いたサービスの作成ページでサービス パラメータを入力するか、gcloud ツールを使用するか、Dataproc Metastore API メソッド services.createを発行します。

サービスを作成する際は、そのサービスのリージョンを指定する必要があります。Dataproc Metastore をサポートするロケーションについては、Cloud のロケーションをご覧ください。

追加のフィールドには、メタストアのバージョン、ネットワーク、ポート、サービス階層が含まれます。ネットワークを指定しない場合、Dataproc Metastore によって、サービス プロジェクトで default ネットワークが使用されることに留意します。Dataproc Metastore によってプライベート IP が使用されるため、同じネットワーク上の VM だけが Dataproc Metastore サービスにアクセスできます。

始める前に

  • Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  • Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  • Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  • Dataproc Metastore API を有効にします。

    API を有効にする

  • Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  • Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  • Dataproc Metastore API を有効にします。

    API を有効にする

  • 大部分の gcloud metastore コマンドでは、ロケーションを指定する必要があります。ロケーションは、--location フラグを使用するかデフォルトのロケーションを設定することで指定できます。

  • VPC ピアリングを制限する組織ポリシーの制限を設定しないでください。constraints/compute.restrictVpcPeering を指定すると、INVALID_ARGUMENT エラーで作成リクエストは失敗します。制限を設定する必要がある場合は、次のコマンドを使用して under:folders/270204312590 を許可します。

    gcloud resource-manager org-policies allow compute.restrictVpcPeering under:folders/270204312590 --organization ORGANIZATION_ID
    

    詳細については、組織のポリシーの制約をご覧ください。

  • Hive メタストア インスタンスに対して Kerberos を有効にする場合は、次のことを行う必要があります。

    • 独自の Kerberos 鍵配布センター(KDC)をホストします。
    • VPC ネットワークと KDC 間の IP 接続を設定します。
    • Hive Keytab の内容を含む Secret Manager のシークレットを設定します。
    • KDC と Hive Keytab の両方でプリンシパルを指定します。
    • Google Cloud Storage バケットの krb5.conf ファイルを指定します。

    詳細については、Kerberos の構成をご覧ください。

共有 VPC の設定

  • サービスが属しているプロジェクトとは異なるプロジェクトに属するネットワークからアクセスできる Dataproc Metastore サービスを作成するには、ネットワーク プロジェクトの IAM ポリシーでサービス プロジェクトの Dataproc Metastore サービス エージェント(service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com)に roles/metastore.serviceAgent を付与する必要があります。

    gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \
        --role "roles/metastore.serviceAgent" \
        --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com"
    

アクセス制御

  • サービスを作成するには、metastore.services.create IAM 権限を含む IAM ロールをリクエストする必要があります。Dataproc Metastore 固有のロール roles/metastore.adminroles/metastore.editor には、作成権限が含まれています。

  • 従来のロールの roles/ownerroles/editor を使用して、ユーザーやグループに作成権限を付与できます。

詳細については、Dataproc Metastore IAM とアクセス制御をご覧ください。

Dataproc Metastore サービスを作成する

Dataproc Metastore サービスを作成する方法を次の手順で示します。

Console

  1. Cloud Console で、Dataproc Metastore ページを開きます。

    Cloud Console で Dataproc Metastore を開く

  2. Dataproc Metastore ページの上部にある [作成] ボタンをクリックします。[Create service] ページが開きます。

    [Create service] ページ
  3. [サービス名] フィールドに、サービスの一意の名前を入力します。命名規則については、リソースの命名規則をご覧ください。

  4. [Data location] を選択します。

  5. Hive の [Metastore version] を選択します。指定しない場合は、Hive バージョン 3.1.2 が使用されます。詳細については、バージョン ポリシーをご覧ください。

  6. リリース チャンネルを選択します。指定しない場合は Stable が使用されます。詳細については、リリース チャンネルをご覧ください。

  7. ポートを入力します。これは、Dataproc Metastore Thrift インターフェースを使用できる TCP ポートです。指定しない場合は、ポート番号 9083 が使用されます。

  8. [サービス階層] を選択します。これはサービスの容量に影響します。Developer はデフォルトの階層です。限定的なスケーラビリティを提供し、フォールト トレランスを提供しないため、低コストの概念実証に適しています。Enterprise 階層は、柔軟なスケーラビリティ、フォールト トレランス、マルチゾーンの高可用性を提供します。Dataproc Metastore の負荷の高いワークロードに対応できます。

  9. ネットワークを選択します。サービスは、他の Metastore クライアントにアクセスするために、Dataproc クラスタなどの他の Metastore クライアントがアタッチされているのと同じネットワークにアタッチされる必要があります。提供されない場合、default ネットワークが使用されます。

    省略可: [共有 VPC ネットワークを使用する] をクリックして、共有 VPC ネットワークのプロジェクト IDVPC ネットワーク名を入力します。詳細については、Dataproc Metastore を使用した VPC Service Controls をご覧ください。

  10. 省略可: Data Catalog の同期を有効にします。詳細については、Dataproc Metastore と Data Catalog の同期をご覧ください。

  11. 省略可: サービスのメンテナンスの時間枠の [曜日] と [時間帯] を選択します。詳細については、メンテナンスの時間枠をご覧ください。

  12. 省略可: Kerberos keytab ファイルを有効にします。

    1. 切り替えボタンをクリックして、Kerberos を有効にします。

    2. [Secret] のリソース ID を選択するか入力します。

    3. 最新の [Secret のバージョン] を使用するか、古いバージョンを選択して使用します。

    4. [Kerberos プリンシパル] を入力します。これは、この Dataproc Metastore サービスに割り当てられたプリンシパルです。

    5. [krb5 config] ファイルをブラウジングします。

  13. 省略可: [顧客管理の暗号鍵(CMEK)を使用] をクリックして、顧客管理の暗号鍵を選択します。詳細については、顧客管理の暗号鍵の使用をご覧ください。

  14. 省略可: Hive Metastoreにマッピングを適用するには、[+ オーバーライドを追加] をクリックします。

  15. 省略可: メタストア サービス リソースに別のメタデータを追加するには、[+ ラベルを追加] をクリックします。

  16. サービスを作成して開始するには、[送信] ボタンをクリックします。

  17. [Dataproc Metastore] ページに戻り、新しいサービスがリストに表示されていることを確認します。

gcloud

  1. 次のgcloud metastore services createコマンドを実行してサービスを作成します。

    gcloud metastore services create SERVICE \
        --location=LOCATION \
        --labels=k1=v1,k2=v2,k3=v3 \
        --network=NETWORK \
        --port=PORT \
        --tier=TIER \
        --hive-metastore-version=HIVE_METASTORE_VERSION \
        --release-channel=RELEASE_CHANNEL \
        --hive-metastore-configs=K1=V1,K2=V2 \
        --kerberos-principal=KERBEROS_PRINCIPAL \
        --krb5-config=KRB5_CONFIG \
        --keytab=CLOUD_SECRET
        --encryption-kms-key=KMS_KEY
    

    次のように置き換えます。

    • SERVICE: 新規サービスの名前。
    • LOCATION: Google Cloud リージョンを指します。
    • k1=v1,k2=v2,k3=v3: 使用するラベル。
    • NETWORK: サービスがアクセスできる VPC ネットワークの名前。別のサービスに属するプロジェクトに属している VPC ネットワークを使用する場合、projects/HOST_PROJECT/global/networks/NETWORK_ID のように相対的なリソース名全体を指定する必要があります。
    • PORT: メタストア Thrift インターフェースを使用可能な TCP ポート。デフォルト: 9083。
    • TIER: 新しいサービスの階層の容量。
    • HIVE_METASTORE_VERSION: このロケーションで新しいメタストア サービスを作成するときに使用できる Hive メタストアのバージョン。サーバーでは、リスト内の 1 つの HiveMetastoreVersion が必ず is_default に設定されることを保証されます。
    • RELEASE_CHANNEL: サービスのリリース チャンネル。
    • K1=V1,K2=V2: 省略可: 使用される Hive メタストア構成ファイル。
    • KERBEROS_PRINCIPAL: 省略可: keytab と KDC の両方に存在する Kerberos プリンシパル。一般的なプリンシパルは「primary/instance@REALM」の形式ですが、厳密な形式はありません。
    • KRB5_CONFIG: 省略可: krb5.config ファイルには、KDC と Kerberos レルムの情報を指定します。このファイルには、レルムと Kerberos アプリケーションの KDC のロケーションとデフォルトが含まれています。
    • CLOUD_SECRET: 省略可: Secret Manager のシークレット バージョンの相対的なリソース名。
    • KMS_KEY: 鍵のリソース ID を参照します。
  2. 正常に作成されたことを確認します。

REST

API Explorer を使用し、API の手順に従ってサービスを作成します。

RFC 1918 以外のプライベート IP アドレス範囲を使用する

提供されている VPC ネットワークで、Dataproc Metastore サービスで必要となる、利用可能な RFC 1918 アドレスが不足することがあります。この場合、Dataproc Metastore はサービス作成のために RFC 1918 以外のプライベート IP アドレス範囲を予約しようとします。サポートされているRFC 1918 以外のプライベート範囲の一覧については、VPC ネットワークのドキュメントの有効な範囲をご覧ください。

Dataproc Metastore で使用される RFC 1918 以外のプライベート IP アドレスは、提供されている VPC ネットワークに接続されたオンプレミス ネットワークの範囲と競合する可能性があります。Dataproc Metastore で予約された RFC 1918 と RFC 1918 以外のプライベート IP アドレスのリストを確認するには:

gcloud compute addresses list \
    --project NETWORK_PROJECT_ID \
    --filter="purpose:VPC_PEERING AND name ~ cluster|resourcegroup"

競合が確認されオンプレミス ネットワークを再構成することによって緩和できない場合は、問題の Dataproc Metastore サービスを削除して、2 時間後に再度作成します。

Dataproc Metastore サービスの作成後

サービスを作成した後、Hive メタストアとしてサービスを使用する、Dataproc クラスタの接続と作成、またはセルフマネージドの Apache Hive / Apache Spark / Presto クラスタの作成と接続が可能になります。

次のステップ