Dataproc 暫存與臨時值區

建立叢集時,系統會預設使用 HDFS 做為檔案系統。如要覆寫這項行為,請將 defaultFS 設為 Cloud Storage bucket。根據預設,Dataproc 也會在專案中建立 Cloud Storage 暫存值區和 Cloud Storage 臨時值區,或重複使用先前叢集建立要求中 Dataproc 建立的暫存值區和臨時值區。

如果您在建立叢集時未指定暫存或臨時值區,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.configBucketClusterConfig.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 主控台,列出叢集的暫存和臨時值區名稱。

控制台

  • 在 Google Cloud 控制台的 Dataproc「Clusters」(叢集) 頁面中,查看叢集詳細資料,包括叢集暫存值區的名稱。
  • 在 Google Cloud 控制台的「Cloud Storage 瀏覽器」頁面,篩選含有「dataproc-temp-」的結果。

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