Dataproc Serverless for Spark のリソース使用量をプロファイリングする

このドキュメントでは、Dataproc Serverless for Spark のリソース使用量をプロファイリングする方法について説明します。Cloud Profiler を使用すると、アプリケーションの CPU 使用率とメモリ割り当ての情報が継続的に収集、報告されます。バッチを送信する際またはセッション ワークロードを作成する際に、次の表に示すプロファイリング プロパティを使用してプロファイリングを有効にできます。Dataproc Serverless for Spark は、関連する JVM オプションをワークロードに使用される spark.driver.extraJavaOptions 構成と spark.executor.extraJavaOptions 構成に追加します。

オプション 説明 デフォルト
dataproc.profiling.enabled ワークロードのプロファイリングを有効にする true または false false
dataproc.profiling.name Profiler Service のプロファイル名 PROFILE_NAME spark-WORKLOAD_TYPE-WORKLOAD_ID。ここで、
  • WORKLOAD_TYPE が batch または session に設定されている
  • WORKLOAD_ID が batchId または sessionId に設定されています

メモ:

  • Dataproc Serverless for Spark は、Profiler バージョンをバッチ UUID またはセッション UUID に設定します。
  • プロファイラは、SparkPySparkSparkSqlSparkR の Spark ワークロード タイプをサポートしています。
  • Profiler がデータを収集してプロジェクトにアップロードできるようにするには、ワークロードを 3 分以上実行する必要があります。
  • ワークロードとともに送信されたプロファイリング オプションをオーバーライドするには、SparkConf を作成してコードで extraJavaOptions を設定します。ワークロードの送信時に extraJavaOptions プロパティを設定しても、ワークロードとともに送信されたプロファイリング オプションはオーバーライドされません。

バッチ送信で使用される Profiler オプションの例については、PySpark バッチ ワークロードの例をご覧ください。

プロファイリングの有効化

ワークロードでプロファイリングを有効にするには、次の手順を完了します。

  1. Profiler を有効にする
  2. カスタム VM サービス アカウントを使用している場合は、カスタム VM サービス アカウントに Cloud Profiler エージェントのロールを付与します。このロールには、Profiler に必要な権限が含まれています。
  3. バッチ ワークロードの送信時またはセッション テンプレートの作成時に、プロファイリング プロパティを設定します。

PySpark バッチ ワークロードの例

次の例では、gcloud CLI を使用して、プロファイリングを有効にした PySpark バッチ ワークロードを送信します。

gcloud dataproc batches submit pyspark PYTHON_WORKLOAD_FILE \
    --region=REGION \
    --properties=dataproc.profiling.enabled=true,dataproc.profiling.name=PROFILE_NAME \
    --  other args

2 つのプロファイルが作成されます。

  • PROFILE_NAME-driver は、Spark ドライバタスクをプロファイリングします。
  • PROFILE_NAME-executor は、Spark エグゼキュータ タスクをプロファイリングします。

プロファイルを表示

プロファイルは、Google Cloud コンソールの Profiler で確認できます。

次のステップ