クラスタを作成すると、デフォルトのファイルシステムとして HDFS が使用されます。この動作は、defaultFS を Cloud Storage バケットとして設定することで オーバーライドできます。また、デフォルトでは Managed Service for Apache Spark が Cloud Storage のステージング バケットと Cloud Storage の一時バケットをプロジェクトに作成するか、Managed Service for Apache Spark によって作成された既存のステージング バケットと一時バケットを以前のクラスタ作成リクエストから再利用します。
ステージング バケット: クラスタジョブの依存関係、 ジョブドライバ出力、 クラスタ構成ファイルのステージングに使用されます。また、スナップショット診断データの収集から出力を受け取ります。
一時バケット: Spark や MapReduce の履歴ファイルなど、クラスタとジョブの一時データを格納するために使用されます。クラスタのライフサイクル中に収集された チェックポイント診断データ も保存されます。
クラスタの作成時にステージング バケットまたは一時バケットを指定しない場合、 Managed Service for Apache Spark は、クラスタがデプロイされている Compute Engine ゾーンに応じてクラスタのステージング バケットと一時バケット用に Cloud Storage のロケーション(US、ASIA、 または EU)を設定し、 これらのプロジェクト レベルのロケーションごとにバケットを作成して管理します。 Managed Service for Apache Spark で作成されたステージング バケットと一時バケットは、同じリージョン内のクラスタ間で 共有され、 Cloud Storage の削除(復元可能)の保持 期間が 0 秒に設定された状態で作成されます。独自のステージング バケットと一時バケットを指定する場合は、削除済み(復元可能)オブジェクトによって発生するストレージ料金を抑えるために、削除済み(復元可能)の保持期間の調整を検討してください。
一時バケットにはエフェメラル データが含まれ、TTL は 90 日間です。複数のクラスタで必要になるステージング バケット(構成データと依存関係ファイルを格納可能)には、TTL が設定されていません。ただし、依存関係ファイル(ステージング バケット フォルダにある拡張子が ".jar" のファイル)にライフサイクル ルールを適用すると 、依存関係ファイルがクラスタに不要になったときにファイルの削除をスケジュールできます。
独自のステージング バケットと一時バケットを作成する
デフォルトのステージング バケットと一時バケットを作成する代わりに、Managed Service for Apache Spark がクラスタのステージング バケットと一時バケットとして使用する既存の Cloud Storage バケットを指定できます。
Google Cloud コンソール
クラスタのステージング バケットを指定または選択するには:
- [**クラスタを作成**] ページを開きます。
- [追加構成] をクリックしてセクションを開きます。
- [カスタマイズとその他] を編集します。
- 表示されたパネルの [Cloud Storage ステージング バケット] セクションで、バケットを指定します。
注: Google Cloud コンソール を使用した一時バケットの指定はサポートされていません。
gcloud CLI
gcloud dataproc clusters create コマンドをター 101} --bucket
または
--temp-bucket
フラグとともにターミナル ウィンドウでローカルに実行するか、
Cloud Shell
で実行して、クラスタのステージング バケットや一時バケットを指定します。
gcloud dataproc clusters create cluster-name \ --region=region \ --bucket=bucket-name \ --temp-bucket=bucket-name \ other args ...
REST API
Managed Service for Apache Spark は、定義済みのフォルダ構造を使用して、クラスタに接続された Cloud Storage バケットを表します。また、1 つのバケットに複数のクラスタを接続することもできます。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 コンソール
- コンソールの Google Cloud [クラスタ] ページで、クラスタの詳細(クラスタのステージング バケットの名前を含む)を表示できます。
- コンソールの Cloud Storage ブラウザ ページで、dataproc-temp- を含む結果をフィルタリングします。 Google Cloud
gcloud CLI
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 ...