概要
Dataproc クラスタを削除した後、ユーザーは多くの場合、診断やその他の目的でジョブ履歴ファイルを確認します。Dataproc の永続履歴サーバー(PHS)には、アクティブおよび削除された Dataproc クラスタで実行されているジョブのジョブ履歴を表示する UI があります。
永続履歴サーバーは単一ノードの Dataproc クラスタ上で実行され、Cloud Storage にジョブ履歴ファイルを保存してアクセスし、MapReduce、Spark、Pig のジョブをサポートします。この機能は、Dataproc イメージ バージョン 1.4-debian10 以降で使用できます。

ジョブクラスタの設定
永続履歴サーバー クラスタがアクセスして表示するジョブログを保存するための Dataproc ジョブクラスタを作成する際は、次のフラグとクラスタ プロパティを指定します。
--enable-component-gateway
: 必須フラグ コンポーネント ゲートウェイを有効にするには、このフラグを使用する必要があります。dataproc:job.history.to-gcs.enabled
: 必要なクラスタ プロパティ。Cloud Storage でジョブ履歴の保存を有効にするには、このプロパティを「true」に設定する必要があります。spark:spark.history.fs.logDirectory
とspark:spark.eventLog.dir
オプションのクラスタ プロパティ。 これらのフラグはそれぞれ、Spark ジョブ履歴とイベントログを書き込む場所を指定します。使用する場合は、両方のフラグを設定し、同じバケット内のディレクトリを指す必要があります。
プロパティの例:spark:spark.history.fs.logDirectory=gs://bucket-name/directory-name/spark-job-history, spark:spark.eventLog.dir=gs://bucket-name/directory-name/spark-job-history
mapred:mapreduce.jobhistory.intermediate-done-dir
、mapred:mapreduce.jobhistory.done-dir
: オプションのクラスタ プロパティ。これらのフラグは、それぞれ中間 MapReduce ジョブ履歴ファイルを書き込む Cloud Storage の場所を指定します。使用する場合は、両方のフラグを設定し、同じバケット内のディレクトリを指す必要があります。中間のmapreduce.jobhistory.intermediate-done-dir
ロケーションは一時的なストレージです。中間ファイルは、MapReduce ジョブが完了するとmapreduce.jobhistory.done-dir
場所に移動します。
プロパティの例:mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/directory-name/mapreduce-job-history/done, mapred:mapreduce.jobhistory.intermediate-done-dir=gs://bucket-name/directory-name/mapreduce-job-history/intermediate-done
gcloud dataproc clusters create
コマンドを実行してジョブクラスタを作成します。クラスタは 1.4-debian10 以降で作成する必要があります。 注: 読みやすくするために、--property
フラグの値は別の行に表示されます。コマンドを実行する際には、すべてのカンマ区切りの--property
フラグ値を 1 行で指定する必要があります。gcloud dataproc clusters create cluster-name \ --region=region \ --image-version=1.4-debian10 \ --enable-component-gateway \ --properties='dataproc:job.history.to-gcs.enabled=true, spark:spark.history.fs.logDirectory=gs://bucket-name/directory-name/spark-job-history, spark:spark.eventLog.dir=gs://bucket-name/directory/spark-job-history, mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/directory/mapreduce-job-history/done, mapred:mapreduce.jobhistory.intermediate-done-dir=gs://bucket-name/directory-name/mapreduce-job-history/intermediate-done'
gcloud dataproc clusters create cluster-name \ --region=region \ --image-version=1.4-debian10 \ --enable-component-gateway \ --properties='dataproc:job.history.to-gcs.enabled=true'
上記の簡略化されたコマンドを使用すると、ジョブ履歴ファイルはデフォルトのディレクトリ(/spark-job-history
、/mapreduce-job-history/done
、/mapreduce-job-history/intermediate-done
)の Dataproc 一時バケット)に保存されます。一時バケットの Cloud Storage の場所は、gcloud dataproc clusters describe cluster-name --region=region
コマンドの出力として一覧表示されます。ジョブ履歴ファイルの Cloud Storage の場所は、クラスタの /etc/spark/conf/spark-defaults.conf
ファイルと /etc/hadoop/conf/mapred-site.xml
ファイルにも一覧表示されます。
ジョブのクラスタ マスターノードに SSH 接続した後の例:
cat /etc/spark/conf/spark-defaults.conf ... spark.history.fs.logDirectory=gs://temp-bucket/spark-job-history spark.eventLog.dir=gs://temp-bucket/spark-job-history
cat /etc/hadoop/conf/mapred-site.xml ... <property> <name>mapreduce.jobhistory.done-dir</name> <value>gs://temp-bucket/mapreduce-job-history/done</value> </property> <property> <name>mapreduce.jobhistory.intermediate-done-dir</name> <value>gs://temp-bucket/mapreduce-job-history/done_intermediate</value> </property>
永続履歴サーバーの設定
PHS 単一ノードクラスタを作成するときは、次のフラグとクラスタ プロパティを指定します。
--enable-component-gateway
: 必須フラグ コンポーネント ゲートウェイを有効にするには、このフラグを使用する必要があります。spark:spark.history.fs.logDirectory
: 永続的な Spark ジョブ履歴を有効にするために必要なクラスタ プロパティ。このプロパティは、PHS がジョブクラスタによって書き込まれた Spark ジョブ履歴ログにアクセスする Cloud Storage バケットとディレクトリを指定します(ジョブクラスタの設定をご覧ください)。特定のバケット ディレクトリを指定する代わりに、ワイルドカードとしてアスタリスク(例:gs://bucket-name/*/spark-job-history
)を使用すると、PHS サーバーは、指定されたバケット内の複数のディレクトリ(別々のジョブクラスタによって書き込まれたもの)と一致するようになります(ただし、効率性のための考慮事項: パス途中でのワイルドカードの使用をご覧ください)。mapred:mapreduce.jobhistory.read-only.dir-pattern
: 永続的な MapReduce ジョブ履歴を有効にするために必要なクラスタ プロパティ。このプロパティは、PHS がジョブクラスタによって書き込まれた MapReduce ジョブ履歴ログにアクセスする Cloud Storage バケット ディレクトリを指定します(ジョブクラスタの設定をご覧ください)。特定のバケット ディレクトリを指定する代わりに、ワイルドカードとしてアスタリスク(例:gs://bucket-name/*/mapreduce-job-history/done
)を使用すると、PHS サーバーは、指定されたバケット内の複数のディレクトリ(別々のジョブクラスタによって書き込まれたもの)と一致するようになります(ただし、効率性のための考慮事項: パス途中でのワイルドカードの使用をご覧ください)。
gcloud dataproc clusters create
コマンドを実行して、単一ノードの Dataproc PHS クラスタを作成します。gcloud dataproc clusters create cluster-name \ --single-node \ --region=region \ --image-version=1.4-debian10 \ --enable-component-gateway \ --properties='spark:spark.history.fs.logDirectory=gs://bucket-name/*/spark-job-history,mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/*/mapreduce-job-history/done'
ジョブ履歴ファイルの表示
Cloud Console で PHS 単一ノードの [クラスタの詳細] ページに移動し、[ウェブ インターフェース] タブをクリックします。
[MapReduce ジョブ履歴] または [Spark 履歴サーバー] をクリックすると、MapReduce と Spark ジョブ履歴の UI が表示されます。
例:
次のスクリーンショットは、ジョブクラスタの
spark.history.fs.logDirectory
とspark:spark.eventLog.dir
を設定した後にジョブクラスタ-1とジョブクラスタ-2 で実行される Spark ジョブへのリンクを表示する PHS 履歴サーバーの UI を示しています。PHS クラスタのspark.history.fs.logDirectory
のロケーションは次のとおりです。job-cluster-1 gs://example-cloud-storage-bucket/job-cluster-1/spark-job-history job-cluster-2 gs://example-cloud-storage-bucket/job-cluster-2/spark-job-history phs-クラスタ gs://example-cloud-storage-bucket/*/spark-job-history