Cloud Profiler を使用すると、アプリケーションの CPU 使用率とメモリ割り当ての情報が継続的に収集、報告されます。
要件:
Profiler では、Managed Service for Apache Spark Hadoop と Spark のジョブタイプ(Spark、PySpark、SparkSql、SparkR)のみがサポートされています。
Profiler がデータを収集してプロジェクトにアップロードできるようになるには、ジョブが 3 分以上実行される必要があります。
Managed Service for Apache Spark は、cloud.profiler.enable と他の
cloud.profiler.* プロパティを認識(
プロファイラ オプションを参照)し、
適切なプロファイラ JVM オプションを次の構成に追加します。
- Spark:
spark.driver.extraJavaOptionsおよびspark.executor.extraJavaOptions - MapReduce:
mapreduce.task.profileと他のmapreduce.task.profile.*プロパティ
プロファイリングの有効化
Managed Service for Apache Spark ジョブと Hadoop ジョブでプロファイラを有効にして使用するには、次の手順を実行します。
サービス アカウント スコープ を に設定して Managed Service for Apache Spark クラスタ を作成し、クラスタがプロファイラ サービスと通信できるようにします。
monitoringカスタム VM サービス アカウントを使用している場合は、カスタム VM サービス アカウントに Cloud Profiler エージェントのロールを付与します。このロールには、プロファイラに必要な権限が含まれています。
gcloud
gcloud dataproc clusters create cluster-name \ --scopes=cloud-platform \ --region=region \ other args ...
プロファイラ オプションを付けて Managed Service for Apache Spark ジョブを送信する
- Spark や Hadoop ジョブを送信します
次の 1 つ以上のプロファイラ オプションを使用して:
オプション 説明 値 必須 / 省略可 デフォルト メモ cloud.profiler.enableジョブのプロファイリングを有効にする trueまたはfalse必須 falsecloud.profiler.nameProfiler Service でプロファイルを作成するときに使用する名前 profile-name オプション Managed Service for Apache Spark ジョブ UUID cloud.profiler.service.versionプロファイラの結果を識別するための、ユーザー指定の文字列。 Profiler Service Version オプション Managed Service for Apache Spark ジョブ UUID mapreduce.task.profile.mapsプロファイリングするマップタスクの数値範囲(例: 最大 100 の場合は「0-100」を指定) number range 省略可 0-10000 Hadoop Mapreduce ジョブにのみ適用する mapreduce.task.profile.reducesプロファイリングするレデューサ タスクの数値範囲(例: 最大 100 の場合は「0-100」を指定) number range 省略可 0-10000 Hadoop Mapreduce ジョブにのみ適用する
PySpark の例
Google Cloud CLI
PySpark ジョブの送信とプロファイリングの例:
gcloud dataproc jobs submit pyspark python-job-file \ --cluster=cluster-name \ --region=region \ --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \ -- job args
次の 2 つのプロファイルが作成されます。
profiler_name-driverは、Spark ドライバタスクをプロファイリングします。profiler_name-executorは、Spark エグゼキュータ タスクをプロファイリングします。
たとえば、profiler_name が「spark_word_count_job」の場合、spark_word_count_job-driver プロファイルと spark_word_count_job-executor プロファイルが作成されます。
Hadoop の例
gcloud CLI
Hadoop(TeraGen MapReduce)ジョブの送信とプロファイリングの例:
gcloud dataproc jobs submit hadoop \ --cluster=cluster-name \ --region=region \ --jar=jar-file \ --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \ -- teragen 100000 gs://bucket-name
プロファイルを表示する
Google Cloud コンソールの Profiler でプロファイルを表示します。
次のステップ
- Monitoring のドキュメントを確認する
- Logging のドキュメントを確認する
- Google Cloud Observability を確認する