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 クラスタを作成し、クラスタがプロファイラ サービスと通信できるようにします。
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 の例
gcloud
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
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 を確認する