サービスの作成

Dataproc Metastore サービスは、Google Cloud Console、ローカル ターミナル ウィンドウか Cloud Shell で Cloud SDK gcloud コマンドライン ツール、または services.create API メソッドを使用して作成できます。

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

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

始める前に

  • プロジェクトに対する課金を有効にします

  • Dataproc Metastore 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 の構成をご覧ください。

  • サービスが属しているプロジェクトとは異なるプロジェクトに属するネットワークからアクセスできる 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.admin および roles/metastore.editor が作成権限の付与に使用できます。

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

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

Dataproc Metastore サービスの作成

以下の手順では、Google Cloud Console、gcloud ツール、または Dataproc Metastore API を使用して 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 バージョン 2.3.6 が使用されます。詳細については、バージョン ポリシーをご覧ください。

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

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

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

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

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

  10. 省略可: [Data Catalog sync] を有効にして、Dataproc Metastore サービスを 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. 省略可: [+ ADD OVERRIDES] をクリックして、Hive Metastore へのマッピングを適用します。

  14. 省略可: [+ ADD LABELS] をクリックして、メタストア サービス リソースにメタデータを追加します。

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

  16. [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
    

    以下を置き換えます。

    • 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 のシークレット バージョンの相対的なリソース名。
  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 クラスタの作成と接続が可能になります。

次のステップ