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 に設定します。
  • Profiler は、SparkPySparkSparkSqlSparkR の Spark ワークロード タイプをサポートしています。
  • Profiler がデータを収集してプロジェクトにアップロードできるようにするには、ワークロードを 3 分以上実行する必要があります。
  • ワークロードとともに送信されたプロファイリング オプションをオーバーライドするには、SparkConf を作成して、コードで extraJavaOptions を設定します。ワークロードの送信時に extraJavaOptions プロパティを設定しても、ワークロードで送信されたプロファイリング オプションはオーバーライドされないことに注意してください。

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

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

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

  1. Profiler を有効にする
  2. カスタム VM サービス アカウントを使用している場合は、Cloud Profiler エージェントのロールをカスタム VM サービス アカウントに付与します。このロールには、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 で確認できます。

次のステップ