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