Managed Service for Apache Spark のステージング バケットと一時バケット

クラスタを作成すると、デフォルトのファイルシステムとして HDFS が使用されます。この動作は、defaultFS を Cloud Storage バケットとして設定することでオーバーライドできます。また、デフォルトでは Managed Service for Apache Spark が Cloud Storage のステージング バケットと Cloud Storage の一時バケットをプロジェクトに作成するか、Managed Service for Apache Spark によって作成された既存のステージング バケットと一時バケットを以前のクラスタ作成リクエストから再利用します。

クラスタの作成時にステージング バケットまたは一時バケットを指定しない場合、Managed Service for Apache Spark は、クラスタがデプロイされている Compute Engine のゾーンに従い、クラスタのステージング バケットと一時バケットに Cloud Storage のロケーション(米国、アジア、EU)を設定してから、これらのプロジェクト レベルのロケーションごとのバケットを作成して管理します。Managed Service for Apache Spark で作成されたステージング バケットと一時バケットは、同じリージョン内のクラスタ間で共有され、Cloud Storage の削除(復元可能)の保持期間が 0 秒に設定された状態で作成されます。独自のステージング バケットと一時バケットを指定する場合は、削除済み(復元可能)オブジェクトによって発生するストレージ料金を抑えるために、削除済み(復元可能)の保持期間の調整を検討してください。

一時バケットにはエフェメラル データが含まれ、TTL は 90 日間です。複数のクラスタで必要になるステージング バケット(構成データと依存関係ファイルを格納可能)には、TTL が設定されていません。ただし、依存関係ファイル(ステージング バケット フォルダにある拡張子が .jar のファイル)にライフサイクル ルールを適用すると、依存関係ファイルがクラスタに不要になったときにファイルの削除をスケジュールできます。

独自のステージング バケットと一時バケットを作成する

デフォルトのステージング バケットと一時バケットを作成する代わりに、Managed Service for Apache Spark がクラスタのステージング バケットと一時バケットとして使用する既存の Cloud Storage バケットを指定できます。

gcloud コマンド

--bucket フラグまたは --temp-bucket フラグを使用して、gcloud dataproc clusters create コマンドをターミナル ウィンドウでローカルに実行するか、Cloud Shell で実行して、クラスタのステージング バケットや一時バケットを指定します。

gcloud dataproc clusters create cluster-name \
    --region=region \
    --bucket=bucket-name \
    --temp-bucket=bucket-name \
    other args ...

REST API

clusters.create リクエストで ClusterConfig.configBucket フィールドと ClusterConfig.tempBucket フィールドを使用して、クラスタのステージング バケットと一時バケットを指定します。

コンソール

Google Cloud コンソールで、Managed Service for Apache Spark の [クラスタの作成] ページを開きます。[クラスタのカスタマイズ] パネルを選択してから、[ファイル ストレージ] フィールドでクラスタのステージング バケットを指定するか選択します。

注: 現在のところ、 Google Cloud コンソールを使用した一時バケットの指定はサポートされていません。

Managed Service for Apache Spark は、定義済みのフォルダ構造を使用して、クラスタに接続された Cloud Storage バケットを表します。Managed Service for Apache Spark では、1 つの Cloud Storage バケットに複数のクラスタを接続することもできます。Cloud Storage にジョブドライバ出力を保存する場合に使用されるフォルダ構造は次のとおりです。

cloud-storage-bucket-name
  - google-cloud-dataproc-metainfo
    - list of cluster IDs
        - list of job IDs
          - list of output logs for a job

gcloud コマンドライン ツール、Managed Service for Apache Spark API、またはGoogle Cloud コンソールを使用して、クラスタのステージング バケットと一時バケットの名前を一覧表示できます。

コンソール

  • Google Cloud コンソールで、Managed Service for Apache Spark の [クラスタ] ページにクラスタの詳細(クラスタのステージング バケットの名前を含む)を表示します。
  • Google Cloud コンソールの Cloud Storage ブラウザページで、dataproc-temp- を含む結果をフィルタリングします。

gcloud コマンド

gcloud dataproc clusters describe コマンドをターミナル ウィンドウでローカルに、または Cloud Shell で実行します。クラスタに関連付けられたステージング バケットと一時バケットが出力に表示されます。

gcloud dataproc clusters describe cluster-name \
    --region=region \
...
clusterName: cluster-name
clusterUuid: daa40b3f-5ff5-4e89-9bf1-bcbfec ...
config:
    configBucket: dataproc-...
    ...
    tempBucket: dataproc-temp...

REST API

clusters.get を呼び出して、クラスタのステージング バケットと一時バケットの名前を含むクラスタの詳細を一覧表示します。

{
 "projectId": "vigilant-sunup-163401",
 "clusterName": "cluster-name",
 "config": {
  "configBucket": "dataproc-...",
...
  "tempBucket": "dataproc-temp-...",
}

defaultFS

core:fs.defaultFS を Cloud Storage のバケットのロケーション(gs://defaultFS-bucket-name)に設定して、Cloud Storage をデフォルトのファイル システムとして設定できます。これにより、core:fs.gs.reported.permissions(すべてのファイルに対して Cloud Storage コネクタから返されるレポートの権限) が 777 に設定されます。

Cloud Storage がデフォルトのファイル システムとして設定されていない場合、HDFS が使用され、core:fs.gs.reported.permissions プロパティがデフォルト値の 700 を返します。

gcloud dataproc clusters create cluster-name \
    --properties=core:fs.defaultFS=gs://defaultFS-bucket-name \
    --region=region \
    --bucket=staging-bucket-name \
    --temp-bucket=temp-bucket-name \
    other args ...