クラスタを作成すると、デフォルトのファイルシステムとして HDFS が使用されます。この動作は、defaultFS を Cloud Storage バケットとして設定することでオーバーライドできます。デフォルトでは、Dataproc は Cloud Storage のステージング バケットと Cloud Storage の一時バケットをプロジェクトに作成するか、Dataproc によって作成された既存のステージング バケットと一時バケットを以前のクラスタ作成リクエストから再利用します。
ステージング バケット: クラスタジョブの依存関係、ジョブドライバ出力、クラスタ構成ファイルのステージングに使用されます。また、スナップショット診断データの収集から出力を受け取ります。
一時バケット: Spark や MapReduce の履歴ファイルなど、クラスタとジョブの一時データを格納するために使用されます。クラスタのライフサイクル中に収集されたチェックポイント診断データも保存されます。
クラスタの作成時にステージング バケットまたは一時バケットを指定しない場合、Dataproc は、クラスタがデプロイされている Compute Engine ゾーンに応じてクラスタのステージング バケットと一時バケット用に Cloud Storage のロケーション(US、ASIA、EU)を設定し、これらのプロジェクト レベルのロケーションごとにバケットを作成して管理します。Dataproc で作成されたステージング バケットと一時バケットは、同じリージョン内のクラスタ間で共有され、Cloud Storage の削除(復元可能)の保持期間が 0 秒に設定された状態で作成されます。
一時バケットにはエフェメラル データが含まれ、TTL は 90 日間です。複数のクラスタで必要になるステージング バケット(構成データと依存関係ファイルを格納可能)には、TTL が設定されていません。ただし、依存関係ファイル(ステージング バケット フォルダにある拡張子が .jar のファイル)にライフサイクル ルールを適用すると、依存関係ファイルがクラスタに不要になったときにファイルの削除をスケジュールできます。
独自のステージング バケットと一時バケットを作成する
デフォルトのステージング バケットと一時バケットを作成する代わりに、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
フィールドを使用して、クラスタのステージング バケットと一時バケットを指定します。
コンソール
Google Cloud コンソールで、Dataproc の [クラスタの作成] ページを開きます。[クラスタのカスタマイズ] パネルを選択してから、[ファイル ストレージ] フィールドでクラスタのステージング バケットを指定するか選択します。
注: 現在のところ、 Google Cloud コンソールを使用した一時バケットの指定はサポートされていません。
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 コンソールを使用して、クラスタのステージング バケットと一時バケットの名前を一覧表示できます。
コンソール
- Google Cloud コンソールで、Dataproc の [クラスタ] ページにクラスタの詳細(クラスタのステージング バケットの名前を含む)を表示します。
- 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 ...