トラブルシューティング

このページでは、さまざまなエラーのシナリオと、それらのエラーを解決するためのトラブルシューティング手順について説明します。

接続とネットワークのエラーシナリオ

サービスの接続またはネットワークに関する問題が発生した場合は、このセクションのシナリオを参照して、いずれかのシナリオが問題の原因になっているかどうかを確認してください。

VPC ピアリングに対する制限が原因で、サービスを作成できませんでした

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

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

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

サービス アカウントが存在しない可能性がある場合に、プロジェクト間でデプロイできない

サービスが属しているプロジェクトとは異なるプロジェクトに属するネットワークからアクセスできる 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"

詳細は、プロジェクト間のデプロイを設定するをご覧ください。

マルチリージョンの Dataproc Metastore サービスを作成できない

マルチリージョンの Dataproc Metastore サービスを作成すると、次のエラーが発生することがあります。

The Dataproc Service Agent does not have permission to GET Dataproc Metastore service
'projects/<dpmsproject>/locations/nam7/services/<service>'. If using a service from the
cluster's project, please ensure the service agent has the Cloud IAM role
'roles/dataproc.serviceAgent'. Please see
https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-
principals#service_agent_control_plane_identity for information on the Dataproc Service
Agent, and https://cloud.google.com/iam/docs/granting-changing-revoking-access#granting-
gcloud-manual for information on granting access.

このエラーは、Dataproc クラスタが Dataproc Metastore とは異なるプロジェクトにあり、プロジェクトに正しい権限を付与していない場合に発生します。

このエラーを解決するには、Dataproc Metastore プロジェクトに含まれる Dataproc サービス アカウントに metastore.services.get 権限を付与する必要があります。

ネットワーク接続にプライベート IP が必要とされる

Dataproc Metastore はプライベート IP のみを使用し、パブリック IP は公開されません。これは、指定された Virtual Private Cloud(VPC)ネットワークまたは(Cloud VPN または Cloud Interconnect を介して接続された)オンプレミスの VM のみが Dataproc Metastore サービスにアクセスできることを意味します。

詳細については、サービスへのアクセスをご覧ください。

Kerberos に必要な上り(内向き)許可のファイアウォール ルール

Kerberos では、プロジェクト ネットワークのホストへの接続を開始するために、Dataproc Metastore が必要になります。Dataproc Metastore IP を含む /17 IP ブロックからのすべてのポートで TCP および UDP 上り(内向き)を許可するファイアウォール ルールを作成する必要があります。

詳しくは、KDC 上のファイアウォール ルールサービスのファイアウォール ルールをご覧ください。

共有 VPC ネットワークでプロビジョニングされたリソースによる接続エラー

Dataproc Metastore の場合。この場合、Dataproc Metastore はサービス作成のために RFC 1918 以外のプライベート IP アドレス範囲を予約しようとします。サポートされている RFC 1918 以外のプライベート範囲の一覧については、VPC ネットワークのドキュメントの有効な範囲をご覧ください。サービスでは別のプロジェクトに属しているネットワークを使用しており、Compute Engine がサービス境界で保護されている場合、メタストア プロジェクトとネットワーク プロジェクトは同じ境界内に存在する必要があります。

既存の Dataproc Metastore プロジェクトを境界に追加するには、サービス境界の更新の手順に従ってください。

詳細については、Dataproc Metastore での VPC Service Controls をご覧ください。

割り当てられた 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 時間後に再度作成します。

詳細については、IP アドレス範囲の枯渇をご覧ください。

オペレーション タイムアウトのエラーシナリオ

次のエラーシナリオでは、サービスが応答しなくなるかオペレーションがタイムアウトします。

監査ログを使用してオペレーション タイムアウトのトラブルシューティングを実施する

サービス オペレーションのタイムアウトをトラブルシューティングするには、Google Cloud コンソールのログ エクスプローラを使用して Cloud プロジェクトの監査ログエントリを取得します。

[クエリビルダー] ペインで、Google Cloud リソースタイプとして [監査対象リソース] または [audited_resource] を選択した後、サービスとして、[Dataproc Metastore] または [metastore.googleapis.com] を選択します。メソッドの選択は省略可能です。

詳細については、ログの表示をご覧ください。

インポートとエクスポートのエラー シナリオ

このセクションでは、Dataproc Metastore のインポートとエクスポートに関する一般的な問題について説明します。

Hive バージョンが一致しないためインポートが失敗した

メタデータをインポートするときに、Hive メタストアと Dataproc Metastore のバージョンに互換性がある必要があります。この 2 つが一致しない場合、インポートが失敗することがあります。

互換性の詳細については、バージョン ポリシーをご覧ください。

Cloud Logging をチェックして、このエラーが発生したかどうかを確認できます。次のメッセージは、このエラーの例です。

Metastore schema version is not compatible. Hive Version: 3.1.0, Database Schema Version: 2.3.0

Hive テーブル ファイルが欠落しているため、インポートに失敗する

Avro のインポートを準備する際には、テーブルが空であっても、各 Hive テーブルにファイルが存在する必要があります。この要件を満たさないと、インポートが失敗します。

Dataproc Metastore Toolkit を参照して、適切な Hive メタデータ スキーマを確認できます。

サービス エージェントまたはユーザーに必要な権限がない

Dataproc Metastore サービス エージェント(service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com)とメタデータをインポートするユーザーには、インポートに使用する Cloud Storage バケットに対する次の読み取り権限が付与されている必要があります。

  • MySQL については、インポートに使用する Cloud Storage オブジェクト(SQL ダンプファイル)に対する storage.objects.get 権限を付与されている必要があります。

  • Avro については、インポートに使用する Cloud Storage バケットに対する storage.objects.get 権限を必要されている必要があります。

エクスポートについては、Dataproc Metastore サービス エージェント(service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com)とエクスポートを作成するユーザーに、バケットに対する storage.objects.create 権限が付与されている必要があります。

データベース ファイルが大きすぎるためジョブが失敗する

データベース ファイルが大きすぎると、インポートまたはエクスポートの処理を完了するまでにジョブ タイムアウト制限に到達する可能性があります。3 時間のジョブ タイムアウト制限内にインポートを完了できない場合は、複数の Dataproc Metastore インスタンス間でメタデータを分割できます。

バックアップと復元のエラーシナリオ

このセクションでは、Dataproc Metastore のバックアップと復元に関する一般的な問題について説明します。

サービスの新しいバックアップを作成できない

サービスにバックアップがすでに 7 つ存在する場合は、新しいバックアップを作成する前に、手動でバックアップを削除する必要があります。既存のバックアップは、[バックアップ/復元] タブから削除できます。

ユーザーには必要な権限がない

メタデータをバックアップするには、metastore.backups.create IAM 権限を含む IAM ロールをリクエストする必要があります。

メタデータを復元するには、metastore.services.restoremetastore.backups.use の IAM 権限を含む IAM ロールをリクエストする必要があります。

サービス メタデータ ファイルが大きすぎるため、ジョブが失敗する

サービス メタデータ ファイルが大きすぎると、バックアップまたは復元の処理を完了するまでに 1 時間を超える時間を要する場合があり、ジョブ タイムアウト制限に到達する可能性があります。

Dataproc クラスタのエラーに関するシナリオ

以降のセクションでは、Dataproc とセルフマネージド クラスタに関する一般的な問題について説明します。

バージョンの不一致が原因で Dataproc クラスタのアタッチが失敗する

Dataproc クラスタをアタッチする場合は、Dataproc イメージと Dataproc Metastore Hive のバージョンに互換性が必要です。次のイメージ バージョニング ページをチェックして、Hive バージョンに互換性があることを確認してください。

詳細については、Dataproc イメージ バージョン リストをご覧ください。

ロールが不十分であるために Dataproc クラスタの作成に失敗する

Dataproc クラスタを作成すると、クラスタの作成が失敗し、次のエラー メッセージが表示されます。

gcloud.dataproc.clusters.create) INVALID_ARGUMENT: Default Service Account '**********-compute@developer.gserviceaccount.com' is missing required permissions: [dataproc.agents.create, dataproc.agents.delete, dataproc.agents.get, dataproc.agents.update, dataproc.tasks.lease, dataproc.tasks.listInvalidatedLeases, dataproc.tasks.reportStatus]. Service Accounts must have either 'Dataproc/Dataproc Worker' role or all permissions granted by the role.

これは、Dataproc クラスタを作成して Dataproc Metastore に接続しようとしたときに発生する可能性があります。

この問題を解決するには、サービス アカウントに roles/dataproc.worker を付与します。次の例に、いくつかのサンプル値を使用する方法を示します。

gcloud projects add-iam-policy-binding my_project \
    --member=219315-compute@developer.gserviceaccount.com \
    --role=roles/dataproc.worker

タイムゾーンの問題によりメタストアに接続に失敗する

Hive ファイルがエラー The server time zone value 'CDT' is unrecognized or represents more than one time zone を返します。

Dataproc からメタストアに接続できない場合は、現在のクラスタを削除し、gcloud dataproc clusters create コマンドまたは自動化ツールを更新して以下のタイムゾーン パラメータを含める必要があります。

--metadata "hive-metastore-uri=jdbc:mysql://10.207.26.77:3306/hive_metastore?serverTimezone=CST6CDT"

Google Cloud CLI に関する問題のトラブルシューティング

gcloud CLI コマンドが使用できない問題が発生した場合や、コマンドの動作がドキュメントと異なる場合は、gcloud CLI を更新してください。

gcloud components update

次のステップ