Cloud Profiler を使用すると、アプリケーションの CPU 使用率とメモリ割り当ての情報が継続的に収集、報告されます。
要件:
Profiler では、Dataproc Hadoop と Spark のジョブタイプ(Spark、PySpark、SparkSql、SparkR)のみがサポートされています。
Profiler がデータを収集してプロジェクトにアップロードできるようになるには、ジョブが 3 分以上実行される必要があります。
Dataproc は、cloud.profiler.enable
と他の cloud.profiler.*
プロパティを認識(プロファイラ オプションを参照)し、適切なプロファイラ JVM オプションを次の構成に追加します。
- Spark:
spark.driver.extraJavaOptions
およびspark.executor.extraJavaOptions
- MapReduce:
mapreduce.task.profile
と他のmapreduce.task.profile.*
プロパティ
プロファイリングの有効化
Dataproc Spark ジョブと Hadoop ジョブで Profiler を有効にして使用するには、次の手順を実行します。
サービス アカウント スコープを
monitoring
に設定して Dataproc クラスタを作成し、クラスタがプロファイラ サービスと通信できるようにします。カスタム VM サービス アカウントを使用している場合は、カスタム VM サービス アカウントに Cloud Profiler エージェントのロールを付与します。このロールには、プロファイラ サービスに必要な権限が含まれています。
gcloud
gcloud dataproc clusters create cluster-name \ --scopes=cloud-platform \ --region=region \ other args ...
Profiler オプションを付けて Dataproc ジョブを送信する
- 次の 1 つ以上の Profiler オプションを使用してDataproc Spark や Hadoop ジョブを送信します。
オプション 説明 値 必須 / 省略可 デフォルト メモ cloud.profiler.enable
ジョブのプロファイリングを有効にする true
またはfalse
必須 false
cloud.profiler.name
Profiler Service でプロファイルを作成するときに使用する名前 profile-name 省略可 Dataproc ジョブ UUID cloud.profiler.service.version
プロファイラの結果を識別するための、ユーザー指定の文字列。 Profiler Service Version 省略可 Dataproc ジョブ 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 を確認する