Cloud Profiler

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 を有効にして使用するには、次の手順を実行します。

  1. Profiler を有効にする

  2. サービス アカウント スコープmonitoring に設定して Dataproc クラスタを作成し、クラスタがプロファイラ サービスと通信できるようにします。

gcloud

gcloud dataproc clusters create cluster-name \
    --scopes=cloud-platform \
    --region=region \
    other args ...

Profiler オプションを付けて Dataproc ジョブを送信する

  1. 次の 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 つのプロファイルが作成されます。

  1. profiler_name-driver は、Spark ドライバタスクをプロファイリングします。
  2. 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 でプロファイルを表示します。

次のステップ