Dataproc のステージング バケットと一時バケット

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

  • ステージング バケット: クラスタジョブの依存関係、ジョブドライバ出力、クラスタ構成ファイルのステージングに使用されます。また、Cloud SDK の gcloud dataproc clusters diagnose コマンドの出力を受け取ります。

  • 一時バケット: Spark や MapReduce の履歴ファイルなど、一時的なクラスタとジョブデータを格納するために使用されます。

ステージング バケットまたは一時バケットを指定しない場合、Dataproc は、クラスタのステージング バケットと一時バケットに対して、クラスタがデプロイされている Compute Engine ゾーンに従い Cloud Storage のロケーション(米国、ASIA、EU)を、設定してから、これらプロジェクト レベルのロケーションごとのバケットを作成および管理します。Dataproc で作成されたステージング バケットと一時バケットは、同じリージョン内のクラスタ間で共有されます。デフォルトでは、一時バケットの TTL は 90 日間です。

デフォルトのステージング バケットと一時バケットを作成する代わりに、Dataproc がクラスタのステージング バケットと一時バケットとして使用する既存の 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 フィールドを使用しして、クラスタのステージング バケットと一時バケットを指定します。

Console

Cloud Console で、Dataproc の [クラスタの作成] ページを開きます。[クラスタのカスタマイズ] パネルを選択し、[ファイル ストレージ] フィールドを使用して、クラスタのステージング バケットを指定または選択します。

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

Dataproc は、クラスタに接続された Cloud Storage バケット用の定義済みフォルダ構造を使用します。また、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 コマンドライン ツール、Dataproc API、または Google Cloud Console を使用して、クラスタのステージング バケットと一時バケットの名前を一覧表示できます。

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-...",
}

Console

Cloud Console の Dataproc [クラスタ] ページで、クラスタのステージング バケットの名前など、クラスタの詳細を表示します。

注: 現在のところ、一時バケットのコンソール表示はサポートされていません。

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 ...