建立叢集時,系統會預設使用 HDFS 做為檔案系統。如要覆寫這項行為,請將 defaultFS 設為 Cloud Storage bucket。根據預設,Dataproc 也會在專案中建立 Cloud Storage 暫存和 Cloud Storage 臨時 bucket,或重複使用先前叢集建立要求中 Dataproc 建立的暫存和臨時 bucket。
暫存值區:用於儲存暫時性叢集和工作資料,例如 Spark 和 MapReduce 歷來檔案。也會儲存叢集生命週期期間收集的檢查點診斷資料。
如果您在建立叢集時未指定暫存或臨時值區,Dataproc 會根據叢集部署的 Compute Engine 區域,為叢集的暫存和臨時值區在美國、亞洲或歐盟設定 Cloud Storage 位置,然後建立及管理這些專案層級的每個位置值區。Dataproc 建立的暫存值區和臨時值區會由同一區域中的叢集共用,且建立時 Cloud Storage 軟刪除保留時間會設為 0 秒。如果您指定自己的暫存和臨時 bucket,建議調整虛刪除保留時間,以減少虛刪除物件產生的儲存空間費用。
暫存值區包含暫時性資料,存留時間為 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 ...