Dataproc Metastore サービスを作成する

このページでは、Dataproc Metastore サービスを作成する方法について説明します。

Dataproc Metastore サービスを作成すると、メタデータをインポートして、次のいずれかのサービスに接続できます。

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

始める前に

必要なロール

Dataproc Metastore の作成に必要な権限を取得するには、最小権限の原則に基づいて、プロジェクトで次の IAM ロールを付与するよう管理者に依頼してください。

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

この事前定義ロールには、Dataproc Metastore の作成に必要な metastore.services.create 権限が含まれています。

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

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

デフォルト設定を使用して Dataproc Metastore を作成する

デフォルト設定を使用して Dataproc Metastore を作成すると、エンタープライズ階層、中規模のインスタンス サイズ、Hive メタストアの最新バージョン、Thrift エンドポイント、us-central のデータ ロケーションでサービスが構成されます。

Dataproc Metastore 2

次の手順では、Thrift エンドポイントとその他の用意されたデフォルト設定を使用して、Dataproc Metastore 2 を作成する方法を説明します。

Console

  1. Google Cloud コンソールで、[Dataproc Metastore] ページに移動します。

    Dataproc Metastore に移動

  2. ナビゲーション バーで、[+作成] をクリックします。

    [Metastore サービスの作成] ダイアログが開きます。

  3. [Dataproc Metastore 2] を選択します。

  4. [Pricing and Capacity] セクションで、インスタンスのサイズを選択します。

    詳細については、料金プランとスケーリング構成をご覧ください。

  5. [サービス名] フィールドに、サービスの一意の名前を入力します。

    命名規則については、リソースの命名規則をご覧ください。

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

    適切なリージョンの選択の詳細については、利用可能なリージョンとゾーンおよびリージョン エンドポイントをご覧ください。

  7. 残りのサービス構成オプションには、指定されたデフォルトを使用します。

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

    新しいメタストア サービスが [Dataproc Metastore] ページに表示されます。サービスが使用できるようになるまで、ステータスには [作成中] と表示されます。 準備が完了すると、ステータスが [有効] に変わります。 サービスのプロビジョニングには数分かかることがあります。

gcloud CLI

指定されたデフォルトを使用して Dataproc Metastore メタストア サービス 2 を作成するには、次の gcloud metastore services create コマンドを実行します。

gcloud metastore services create SERVICE \
  --location=LOCATION \
  --instance-size=INSTANCE_SIZE \
  --scaling-factor=SCALING_FACTOR

以下を置き換えます。

  • SERVICE: Dataproc Metastore サービスの名前。
  • LOCATION: Dataproc Metastore を作成する Google Cloud リージョン。デフォルトの場所を設定することもできます。

    命名規則については、リソースの命名規則をご覧ください。

  • INSTANCE_SIZE: マルチリージョン Dataproc Metastore のインスタンス サイズ。たとえば、smallmediumlarge などです。INSTANCE_SIZE の値を指定する場合は、SCALING_FACTOR の値を指定しないでください。

  • SCALING_FACTOR: Dataproc Metastore サービスのスケーリング ファクタ。例: 0.1SCALING_FACTOR の値を指定する場合は、INSTANCE_SIZE の値を指定しないでください。

REST

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

Dataproc Metastore 1

次の手順では、Thrift エンドポイントとその他の用意されたデフォルト設定を使用して、Dataproc Metastore 1 を作成する方法を説明します。

Console

  1. Google Cloud コンソールで、[Dataproc Metastore] ページに移動します。

    Dataproc Metastore に移動

  2. ナビゲーション バーで、[+作成] をクリックします。

    [Metastore サービスの作成] ダイアログが開きます。

  3. [Dataproc Metastore 1] を選択します。

  4. [サービス名] フィールドに、サービスの一意の名前を入力します。

    命名規則については、リソースの命名規則をご覧ください。

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

    適切なリージョンの選択の詳細については、利用可能なリージョンとゾーンおよびリージョン エンドポイントをご覧ください。

  6. 残りのサービス構成オプションには、指定されたデフォルトを使用します。

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

    新しいメタストア サービスが [Dataproc Metastore] ページに表示されます。サービスが使用できるようになるまで、ステータスには [作成中] と表示されます。 準備が完了すると、ステータスが [有効] に変わります。 サービスのプロビジョニングには数分かかる場合があります。

gcloud CLI

指定されたデフォルトを使用して基本のメタストア サービスを作成するには、次の gcloud metastore services create コマンドを実行します。

gcloud metastore services create SERVICE \
  --location=LOCATION

以下を置き換えます。

  • SERVICE: Dataproc Metastore サービスの名前。
  • LOCATION: Dataproc Metastore を作成する Google Cloud リージョン。デフォルトの場所を設定することもできます。

    命名規則については、リソースの命名規則をご覧ください。

REST

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

詳細設定を使用して Dataproc Metastore を作成する

詳細設定を使用して Dataproc Metastore を作成するには、ネットワーク構成、スケーリング設定、エンドポイント設定、セキュリティ設定、オプション機能などの構成を変更する必要があります。

Dataproc Metastore 2 または 1

次の手順では、詳細設定を使用して Dataproc Metastore 2 または Dataproc Metastore 1 を作成する方法を説明します。

Console

使ってみる

  1. Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。

    Dataproc Metastore を開く

  2. ナビゲーション メニューで、[+作成] をクリックします。

    [Metastore サービスの作成] ダイアログが開きます。

  3. 使用する Metastore のバージョン([Dataproc Metastore 1] または [Dataproc Metastore 2])を選択します。

    サービス情報

    [Create service] ページ
    [サービスの作成] ページの例

    1. (省略可): Dataproc Metastore 2 の場合。[Pricing and Capacity] セクションで、インスタンスのサイズを選択します。

      詳細については、料金プランとスケーリング構成をご覧ください。

    2. [サービス名] フィールドに、サービスの一意の名前を入力します。

      命名規則については、リソースの命名規則をご覧ください。

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

      適切なリージョンの選択の詳細については、利用可能なリージョンとゾーンおよびリージョン エンドポイントをご覧ください。

    4. Hive の [Metastore version] を選択します。

      この値が変更されない場合、サービスは Hive のサポートされている最新バージョン(現在はバージョン 3.1.2)を使用します。

      正しいバージョンを選択する方法については、バージョン ポリシーをご覧ください。

    5. リリース チャンネルを選択します。

      この値が変更されない場合、メタストアは Stable 値を使用します。詳細については、リリース チャンネルをご覧ください。

    6. TCP ポートを入力します。

      Thrift エンドポイントが接続する TCP ポート。この値が変更されない場合は、ポート番号 9083 が使用されます。エンドポイントを gRPC に変更すると、この値は自動的に 443 に変更され、変更できなくなります。

    7. (省略可)Dataproc Metastore 1 の場合。[サービスティア] を選択します。

      サービスティアはサービスの容量に影響します。詳細については、サービスティアをご覧ください。

    エンドポイント プロトコル

    • 省略可: エンドポイント プロトコルを選択します。

      デフォルトで選択されているオプションは [Apache Thrift] です。さまざまなエンドポイントの詳細については、エンドポイント プロトコルの選択をご覧ください。

    ネットワーク構成

    1. [ネットワーク構成] を選択します。

      デフォルトでは、サービスは 1 つの VPC ネットワークでのみ公開され、default ネットワークを使用します。default ネットワークでは、サービスは同じプロジェクト内の他のサービスにのみ接続できます。

      ネットワーク設定をデフォルトから変更して、次の操作を行います。

      • Dataproc Metastore サービスを他のプロジェクトの Dataproc Metastore サービスに接続します。
      • Dataproc Metastore サービスを Dataproc クラスタなどの他の Google Cloud サービスと使用します。
    2. 省略可: [共有 VPC ネットワークを使用する] をクリックして、プロジェクト IDVPC ネットワーク名を入力します。

    3. 省略可: [Make services accessible in multiple VPC subnetworks] をクリックし、サブネットワークを選択します。最大 5 つのサブネットワークを指定できます。

    4. [完了] をクリックします。

    メタデータ統合

    メンテナンス時間枠

    • 省略可: メンテナンスの時間枠の [曜日] と [時間帯] を選択します。

      詳細については、メンテナンスの時間枠をご覧ください。

    セキュリティ

    1. 省略可: Kerberos を有効にします。

      1. Kerberos を有効にするには、切り替えボタンをクリックします。
      2. [Secret] のリソース ID を選択するか入力します。
      3. 最新の Secret のバージョン を使用するか、古いバージョンを選択して使用します。
      4. [Kerberos プリンシパル] を入力します。

        これは、この Dataproc Metastore サービスに割り当てられるプリンシパルです。

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

    2. 省略可: 暗号化タイプを選択します。

      • デフォルトでは、[Google が管理する暗号鍵] が選択されています。

      • 顧客管理の鍵を選択するには、[顧客管理の暗号鍵(CMEK)を使用する] をクリックします。

        詳細については、顧客管理の暗号鍵の使用をご覧ください。

    Metastore 構成のオーバーライド

    補助バージョン構成

    • 省略可: 補助バージョン構成を追加するには、[有効にする] をクリックします。

      詳細については、補助バージョンをご覧ください。

    データベースの種類

    • 省略可: データベースの種類を選択します。

      [データベースの種類] で、[MySQL] または [Spanner] を選択します。MySQL はデフォルトのデータベースの種類です。

      特定のデータベースの種類の選択方法については、データベースの種類をご覧ください。

    ラベル

    • 省略可: メタデータを説明するオプションのラベルを追加または削除するには、[+ ラベルを追加] をクリックします。

サービスを起動する

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

新しいメタストア サービスが [Dataproc Metastore] ページに表示されます。サービスが使用できるようになるまで、ステータスには [作成中] と表示されます。 準備が完了すると、ステータスが [有効] に変わります。 サービスのプロビジョニングには数分かかることがあります。

gcloud CLI

  1. メタストアを作成するには、次の gcloud metastore services create コマンドを実行します。

    gcloud metastore services create SERVICE \
      --location=LOCATION \
      --instance-size=INSTANCE_SIZE \
      --scaling-factor=SCALING_FACTOR \
      --port=PORT \
      --tier=TIER \
      --endpoint-protocol=ENDPOINT_PROTOCOL \
      --database-type=DATABASE_TYPE \
      --hive-metastore-version=HIVE_METASTORE_VERSION \
      --data-catalog-sync=DATA_CATALOG_SYNC \
      --release-channel=RELEASE_CHANNEL \
      --hive-metastore-configs=METADATA_OVERRIDE \
      --labels=LABELS \
      --auxiliary-versions=AUXILIARY_VERSION \
      --network=NETWORK \
      --consumer-subnetworks="projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET1, projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET2" \
      --kerberos-principal=KERBEROS_PRINCIPAL \
      --krb5-config=KRB5_CONFIG \
      --keytab=CLOUD_SECRET \
      --encryption-kms-key=KMS_KEY

    以下を置き換えます。

    サービスの設定:

    • SERVICE: Dataproc Metastore サービスの新しい Dataproc Metastore サービスの名前。例: 0.1SCALING_FACTOR の値を指定する場合は、INSTANCE_SIZE の値を指定しないでください。
    • LOCATION: Dataproc Metastore を作成する Google Cloud リージョン。デフォルトの場所を設定することもできます。
    • PORT: 省略可: Thrift エンドポイントが使用する TCP ポート。設定されていない場合は、ポート 9083 が使用されます。 gRPC エンドポイントを使用すると、ポート番号は自動的に 443 に変更されます。
    • TIER: Dataproc Metastore 1 の場合は省略可: 新しいサービスのサービス階層。設定しない場合、Developer 値が使用されます。
    • ENDPOINT_PROTOCOL: 省略可: サービスのエンドポイント プロトコルを選択します。
    • DATABASE_TYPE: 省略可: サービスのデータベースの種類を選択します(プレビュー)。 特定のデータベースの種類の選択方法については、データベースの種類をご覧ください。
    • DATA_CATALOG_SYNC: 省略可: Data Catalog の同期機能を有効にします。
    • HIVE_METASTORE_VERSION: 省略可: サービスで使用する Hive メタストア バージョン。例: 3.1.2。設定されていない場合は、Hive の最新バージョンが使用されます。
    • RELEASE_CHANNEL: 省略可: サービスのリリース チャンネル。設定しない場合、Stable 値が使用されます。
    • METADATA_OVERRIDE: 省略可: サービスに適用する Hive メタストアのオーバーライド構成。k1=v1,k2=v2,k3=v3 形式のカンマ区切りリストを使用します。
    • LABELS: 省略可: サービスにメタデータを追加するための Key-Value ペア。k1=v1,k2=v2,k3=v3 形式のカンマ区切りリストを使用します。Dataproc Metastore
    • AUXILIARY_VERSION: 省略可: 補助バージョンを有効にします。詳細については、補助バージョンをご覧ください。

    スケーリング設定:

    • INSTANCE_SIZE: Dataproc Metastore 2 の場合は省略可: マルチリージョン Dataproc Metastore のインスタンス サイズ。たとえば、smallmediumlarge です。 INSTANCE_SIZE の値を指定する場合は、SCALING_FACTOR の値を指定しないでください。
    • SCALING_FACTOR: Dataproc Metastore 2 の場合は省略可: Dataproc Metastore サービスのスケーリング係数。例: 0.1SCALING_FACTOR の値を指定する場合は、INSTANCE_SIZE の値を指定しないでください。

    ネットワーク設定:

    • NETWORK: サービスに接続する VPC ネットワークの名前。設定しない場合、default 値が使用されます。

      使用しているサービスとは異なるプロジェクトに属する VPC ネットワークを使用する場合は、相対リソース名全体を指定する必要があります。例: projects/HOST_PROJECT/global/networks/NETWORK_ID

    • SUBNET1SUBNET2: 省略可: サービスにアクセスできるサブネットワークのリスト。サブネットワークの ID、完全修飾 URL、または相対名を使用できます。 最大 5 つのサブネットワークを指定できます。

    Kerberos 設定:

    • KERBEROS_PRINCIPAL: 省略可: keytab と KDC の両方に存在する Kerberos プリンシパル。一般的なプリンシパルは「primary/instance@REALM」の形式ですが、厳密な形式はありません。
    • KRB5_CONFIG: 省略可: krb5.config ファイルには、KDC と Kerberos レルムの情報を指定します。このファイルには、レルムと Kerberos アプリケーションの KDC のロケーションとデフォルトが含まれています。
    • CLOUD_SECRET: 省略可: Secret Manager の Secret バージョンの相対的なリソース名。
    • KMS_KEY: 省略可: 鍵のリソース ID を参照します。
  2. 正常に作成されたことを確認します。

REST

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

Dataproc Metastore の Hive メタストア構成のオーバーライドを設定する

Apache Hive ウェアハウス ディレクトリが Cloud Storage にある場合、metastore 構成のオーバーライドを設定する必要があります。このオーバーライドにより、カスタム データ ウェアハウスが Dataproc Metastore サービスのデフォルトのウェアハウス ディレクトリとして設定されます。

このオーバーライドを設定する前に、Dataproc Metastore サービスに、ウェアハウス ディレクトリにアクセスするためのオブジェクトの読み取り / 書き込み権限があることを確認してください。詳しくは、Hive ウェアハウス ディレクトリをご覧ください。

次の手順では、新しい Dataproc Metastore サービスで Hive Metastore 構成のオーバーライドを設定する方法について説明します。

Console

  1. Google Cloud コンソールで、[Dataproc Metastore] ページを開きます。

    Dataproc Metastore を開く

  2. ナビゲーション バーで、[+作成] をクリックします。

  3. [Metastore 構成のオーバーライド] に以下の値を入力します。

    • キー: hive.metastore.warehouse.dir.
    • : ウェアハウス ディレクトリの Cloud Storage のロケーション。例: gs://my-bucket/path/to/location
  4. 必要に応じて残りのサービス オプションを構成するか、指定されたデフォルトを使用します。

  5. [送信] をクリックします。

    [Dataproc Metastore] ページに戻り、サービスが正常に作成されたことを確認します。

gcloud CLI

  1. Hive オーバーライドを使用して Dataproc Metastore サービスを作成するには、次の gcloud metastore services create コマンドを実行します。

    gcloud metastore services create SERVICE \
      --location=LOCATION \
      --hive-metastore-configs="hive.metastore.warehouse.dir=CUSTOMER_DIR"
    

    以下を置き換えます。

    • SERVICE: Dataproc Metastore サービスの名前。
    • LOCATION: Dataproc Metastore を作成する Google Cloud リージョン。デフォルトの場所を設定することもできます。
    • CUSTOMER_DIR: ウェアハウス ディレクトリの Cloud Storage のロケーション。例: gs://my-bucket/path/to/location
  2. 正常に作成されたことを確認します。

自動スケーリングを使用して Dataproc Metastore を作成する

Dataproc Metastore 2 は自動スケーリングをサポートしています。自動スケーリングを有効にすると、最小スケーリング ファクタと最大スケーリング ファクタを設定できます。設定すると、サービスはワークロードの実行に必要なスケーリング ファクタを自動的に増減します。

自動スケーリングに関する考慮事項

  • 自動スケーリングとスケーリングの要素は相互に排他的なオプションです。たとえば、自動スケーリングを有効にした場合は、スケーリング ファクタまたはサイズを手動で設定できません。
  • 自動スケーリングは、単一リージョンの Dataproc Metastore インスタンスでのみ使用できます。
  • 自動スケーリングを有効にすると、既存のスケーリング ファクタの設定はクリアされます。
  • 自動スケーリングが無効になっている場合:
    • 既存の自動スケーリング設定はクリアされます。
    • スケーリング ファクタは、サービスで構成された最後の autoscaling_factor に設定されます。
  • 自動スケーリング ファクタの最小と最大は省略可能です。設定しない場合、デフォルト値はそれぞれ 0.16 になります。

次のいずれかのタブを選択して、自動スケーリングを有効にして Dataproc Metastore サービス 2 を作成する方法をご確認ください。

Console

  1. Google Cloud コンソールで、[Dataproc Metastore] ページに移動します。

    Dataproc Metastore に移動

  2. ナビゲーション バーで、[+作成] をクリックします。

    [Metastore サービスの作成] ダイアログが開きます。

  3. [Dataproc Metastore 2] を選択します。

  4. [Pricing and Capacity] セクションで、[Enterprise - シングル リージョン] を選択します。

  5. [インスタンスのサイズ] で、[自動スケーリングを有効化する] をクリックします。

  6. [インスタンスのサイズ] で、スライダーを使用して最小と最大のインスタンス サイズを選択します。

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

    新しいメタストア サービスが [Dataproc Metastore] ページに表示されます。サービスが使用できるようになるまで、ステータスには [作成中] と表示されます。 準備が完了すると、ステータスが [有効] に変わります。 サービスのプロビジョニングには数分かかることがあります。

REST

curl -X POST -s -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"scaling_config":{"autoscaling_config":{"autoscaling_enabled": true,"limit_config":{"max_scaling_factor":MAX_SCALING_FACTOR,"min_scaling_factor": MIN_SCALING_FACTOR}}}}' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/services?service_id=SERVICE_ID

以下を置き換えます。

  • MIN_INSTANCES(省略可): 自動スケーリング構成で使用するインスタンスの最小数。この値が指定されていない場合は、デフォルト値の 0.1 が使用されます。
  • MAX_INSTANCES(省略可): 自動スケーリング構成で使用するインスタンスの最大数。この値が指定されていない場合は、デフォルト値の 6 が使用されます。

マルチリージョンの Dataproc Metastore サービスを作成する

マルチリージョンの Dataproc Metastore を作成するには、マルチリージョンの Dataproc Metastore サービスを設定するをご覧ください。

共有 VPC を使用して Dataproc Metastore サービスを作成する

共有 VPC を使用すると、複数のプロジェクトの Dataproc Metastore リソースを共通の VPC ネットワークに接続できます。

共有 VPC で構成された Dataproc Metastore サービスを作成するには、詳細設定を使用してサービスを作成するをご覧ください。

考慮事項

  • VPC ネットワークは、gRPC エンドポイント プロトコルで構成されている Dataproc Metastore サービスとは関係がありません。

  • Thrift エンドポイント プロトコルで構成された Dataproc Metastore サービスについては、Dataproc Metastore サービスと、接続先の Dataproc クラスタが必ず同じ共有 VPC ネットワークを使用するようにしてください。

  • Thrift エンドポイント プロトコルと Private Service Connect で構成された Dataproc Metastore サービスについては、必ず共有 VPC ネットワークのサブネットワークを使用するようにしてください。

共有 VPC ネットワークに必要な IAM ロール

異なるプロジェクトに属するネットワークからアクセスできる Dataproc Metastore サービスを VPC で作成するには、ネットワーク プロジェクトの 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"

一般的な問題のトラブルシューティング

一般的な問題としては、次のようなものがあります。

  • VPC ピアリングの制限。メタストアを作成する前に、VPC ピアリングを制限する組織のポリシー制約を設定しないでください。設定すると、メタストアの作成が失敗します。正しい VPC 構成の設定の詳細については、VPC ピアリングに対する制限が原因で、サービスを作成できませんでしたをご覧ください。

  • VPC ネットワークに関する問題。メタストアを作成する際に、使用している VPC ネットワークで Dataproc Metastore サービスで必要となる、利用可能な RFC 1918 アドレスが不足することがあります。この問題の解決の詳細については、割り当てられた IP 範囲を使い切ったをご覧ください。

次のステップ