バッチとセッションの接続のトラブルシューティング

このページでは、Serverless for Apache Spark のバッチ ワークロードとインタラクティブ セッションで発生する一般的なネットワーク 接続の問題を診断して解決する方法について説明します。 これらの問題により、ワークロードが必要なデータソース、 外部サービス、または Google Cloud API にアクセスできなくなる可能性があります。

一般的な症状とエラー メッセージ

Serverless for Apache Spark で接続の問題が発生すると、次のようなエラーが発生することがあります。

  • Unable to connect to service_name.googleapis.com
  • Could not reach required Google APIs
  • Connection refused
  • Host unreachable
  • Operation timed out
  • Permission denied(API 呼び出しをブロックしている場合はネットワーク関連であることが多い)

Cloud Storage、 BigQuery、その他のデータベースのデータへのアクセスに関連するエラーが発生することもあります。

一般的な原因とトラブルシューティングのヒント

このセクションでは、Serverless for Apache Spark の接続に関する問題の一般的な原因と、その解決に役立つトラブルシューティングのヒントについて説明します。S

ネットワークの構成

ネットワークの構成ミスは、接続障害の一般的な原因です。Serverless for Apache Spark 用のワークロードとセッションは、内部 IP アドレスを持つ VM で実行されます。ワークロードまたはセッションのサブネットで プライベート Google アクセス(PGA)が自動的に有効になり、Google API とサービスにアクセスします。詳細については、Serverless for Apache Spark のネットワーク構成をご覧ください。

  • アクセス オプション:

  • ファイアウォール ルール:

    • VPC ネットワーク(または共有 VPC ネットワーク ホスト プロジェクト)の下り(外向き)ファイアウォール ルールで、必要な宛先へのアウトバウンド トラフィックがブロックされないようにする必要があります。
      • 該当する場合は、下り(外向き)ルールで、外部サービス( パブリック API や外部のデータベースなど)へのトラフィックを許可する必要があります。 Google Cloud バッチ ワークロードまたはセッションでインターネット アクセスが必要な場合は、 Cloud NAT を使用してサブネットの下り(外向き)を提供できます。
    • 接続の問題の一般的な原因ではありませんが、 上り(内向き)ルールが厳しすぎると、 必要なリターン トラフィックや内部通信が誤ってブロックされる可能性があります。
  • DNS の解決:

    • DNS の解決は VPC ネットワーク内で構成する必要があります。ワークロードとセッションは、storage.googleapis.combigquery.googleapis.com などの Google API と外部サービスのホスト名を解決できる必要があります。
    • カスタム DNS サーバーと Cloud DNS のプライベート ゾーンは、Google ドメインのクエリを転送または解決する必要があります。
    • Google API へのプライベート アクセスに Private Service Connect を使用している場合は、Google サービスの DNS レコードが PSC エンドポイントを使用して VPC ネットワーク内のプライベート IP アドレスに解決される必要があります。

トラブルシューティングのヒント:

  • ネットワークとサブネットの構成を特定する:

    • Serverless for Apache Spark のバッチまたはセッションの詳細で、 networkUrisubnetUri を確認します。
    • Google Cloud コンソールで、VPC ネットワークとサブネットの設定を確認します。
  • プロキシ VM からの接続をテストする:

    • バッチまたはセッション のサブネットに、バッチまたはセッションのサービス アカウントを使用してテスト用の Compute Engine VM を起動します。
    • テスト VM から、次の接続テストを実行します。
      • nslookup storage.googleapis.com を使用して DNS 解決を検証します。bigquery.googleapis.comdataproc.googleapis.com などの他の Google API ドメインをルックアップします。Apache Spark 用 Serverless のサブネットで自動的に有効になるプライベート Google アクセス、または Private Service Connect を使用する場合、ドメインはプライベート IP アドレスに解決される必要があります。
      • curl -v https://storage.googleapis.com を使用して、Google API への HTTPS 接続を確認します 。他の Google サービスへの接続も試してください。
      • ping 8.8.8.8 バッチまたはセッションで必要な場合は、インターネット接続をテストします。Cloud NAT が想定される場合は、 curl -v https://example.com を試してください。
    • Google Cloud Network Intelligence Center の接続テスト を実行して、サブネットから Google API や外部 IP アドレスなどの関連するエンドポイント までのネットワーク パスを診断します。
  • Cloud Logging でネットワーク エラーを確認する:

    • Serverless for Apache Spark のワークロードまたはセッションのロギングを確認します。ネットワーク タイムアウト、接続拒否、API 呼び出しの失敗に関連する ERROR または WARNING メッセージを探します。Spark 固有のネットワークの問題については、jsonPayload.component="driver" または jsonPayload.component="executor" でフィルタします。

IAM の権限

IAM の権限が不十分な場合、ワークロードまたはセッションが リソースにアクセスできず、API 呼び出しが拒否されるとネットワーク障害が発生する可能性があります。

バッチ ワークロードまたはセッションで使用されるサービス アカウントには、必須のロールが必要です。

  • Dataproc ワーカーのロールroles/dataproc.worker)。
  • データアクセス ロール(roles/storage.objectViewerroles/bigquery.dataViewer など)。
  • ロギング:(roles/logging.logWriter)。

トラブルシューティングのヒント:

外部サービスの構成

ワークロードが 外部のデータベースまたはサービスに接続する場合は、 Google Cloud その構成を確認します。

  • 外部サービスのファイアウォールまたは セキュリティ グループで、VPC ネットワーク IP 範囲からの上り(内向き)接続が許可されていることを確認します。該当する場合は、VPC ピアリング、Cloud VPN、Cloud Interconnect、 Cloud NAT IP アドレスを使用して内部 IP アドレスを確認します。
  • データベースの認証情報または接続文字列を確認します。接続の詳細 、ユーザー名、パスワードを確認します。

次のステップ