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。ここで、 |
メモ:
- Dataproc Serverless for Spark は、Profiler バージョンをバッチ UUID またはセッション UUID に設定します。
- Profiler は、
Spark
、PySpark
、SparkSql
、SparkR
の Spark ワークロード タイプをサポートしています。 - Profiler がデータを収集してプロジェクトにアップロードできるようにするには、ワークロードを 3 分以上実行する必要があります。
- ワークロードとともに送信されたプロファイリング オプションをオーバーライドするには、
SparkConf
を作成して、コードでextraJavaOptions
を設定します。ワークロードの送信時にextraJavaOptions
プロパティを設定しても、ワークロードで送信されたプロファイリング オプションはオーバーライドされないことに注意してください。
バッチ送信で使用される Profiler オプションの例については、PySpark バッチ ワークロードの例をご覧ください。
プロファイリングの有効化
ワークロードのプロファイリングを有効にするには、次の手順を行います。
- Profiler を有効にする
- カスタム VM サービス アカウントを使用している場合は、Cloud Profiler エージェントのロールをカスタム VM サービス アカウントに付与します。このロールには、Profiler に必要な権限が含まれています。
- バッチ ワークロードの送信時またはセッション テンプレートの作成時に、プロファイリング プロパティを設定します。
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 で確認できます。