このドキュメントでは、 Google Cloud Apache Spark 向け Serverless のリソース使用量をプロファイリングする方法について説明します。Cloud Profiler を使用すると、アプリケーションの CPU 使用率とメモリ割り当ての情報が継続的に収集、報告されます。次の表に示すプロファイリング プロパティを使用して、バッチを送信するか、セッション ワークロードを作成するときにプロファイリングを有効にできます。Google Cloud Apache Spark 向け Serverless は、関連する JVM オプションをワークロードに使用される spark.driver.extraJavaOptions 構成と spark.executor.extraJavaOptions 構成に追加します。
| オプション | 説明 | 値 | デフォルト |
|---|---|---|---|
dataproc.profiling.enabled |
ワークロードのプロファイリングを有効にする | true または false |
false |
dataproc.profiling.name |
Profiler サービスのプロファイル名 | PROFILE_NAME | spark-WORKLOAD_TYPE-WORKLOAD_ID。ここで、 |
注:
- Apache Spark 用サーバーレスは、Profiler バージョンをバッチ UUID またはセッション UUID に設定します。
- Profiler は、
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 でプロファイルを表示できます。