建立叢集時,系統會預設使用 HDFS 做為檔案系統。如要覆寫這項行為,請將 defaultFS 設為 Cloud Storage bucket。根據預設,Dataproc 也會在專案中建立 Cloud Storage 暫存值區和 Cloud Storage 臨時值區,或重複使用先前叢集建立要求中 Dataproc 建立的暫存值區和臨時值區。
暫存值區:用於暫存叢集工作依附元件、工作驅動程式輸出和叢集設定檔。也會接收 gcloud CLI gcloud dataproc clusters diagnose 指令的輸出。
暫時值區:用於儲存暫時叢集和工作資料,例如 Spark 和 MapReduce 歷來檔案。
如果您在建立叢集時未指定暫存或臨時值區,Dataproc 會根據叢集部署的 Compute Engine 區域,為叢集的暫存和臨時值區在美國、亞洲或歐盟設定 Cloud Storage 位置,然後建立及管理這些專案層級的每個位置值區。Dataproc 建立的暫存值區和臨時值區會由同一區域中的叢集共用,且建立時 Cloud Storage 軟刪除保留時間會設為 0 秒。
暫存值區包含暫時性資料,存留時間為 90 天。 暫存值區可包含多個叢集所需的設定資料和依附元件檔案,因此沒有 TTL。不過,您可以對依附元件檔案套用生命週期規則 (位於暫存值區資料夾中,副檔名為「.jar」的檔案),在叢集不再需要這些檔案時,排定移除作業。
建立自己的暫存和臨時值區
您可以指定現有的 Cloud Storage 值區,供 Dataproc 做為叢集的暫存值區,不必依賴系統建立預設的暫存值區。
gcloud 指令
在本機終端機視窗或 Cloud Shell 中,使用 --bucket
和/或 --temp-bucket
旗標執行 gcloud dataproc clusters create
指令,指定叢集的暫存和/或臨時 bucket。
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 的「建立叢集」頁面。選取「Customize cluster」(自訂叢集) 面板,然後使用「File storage」(檔案儲存空間) 欄位指定或選取叢集的暫存值區。
注意:目前系統不支援使用 Google Cloud 主控台指定暫時儲存空間。
Dataproc 會在連結叢集的 Cloud Storage 值區中使用已定義的資料夾結構。Dataproc 也支援將一個以上的叢集連結至一個 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 主控台,列出叢集的暫存和臨時值區名稱。
控制台
gcloud 指令
在終端機視窗或 Cloud Shell 中,於本機執行 gcloud dataproc clusters describe
指令。與叢集相關的暫存和臨時值區會列在輸出內容中。
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 ...