為 Hadoop 工作負載使用啟用階層命名空間的值區

本頁面說明如何將已啟用階層命名空間的值區用於 Hadoop 工作負載。

總覽

使用具備階層命名空間的 Cloud Storage bucket 時,您可以設定 Cloud Storage 連接器,對 Hadoop、Spark、Hive 等工作負載使用重新命名資料夾作業。

在沒有階層命名空間的 bucket 中,Hadoop、Spark 和 Hive 的重新命名作業會涉及多個物件複製和刪除工作,進而影響效能和一致性。使用 Cloud Storage 連接器重新命名資料夾,可最佳化效能,並確保處理含有大量物件的資料夾時,能維持一致性。

事前準備

如要使用階層命名空間 bucket 的功能,請使用下列 Cloud Storage 連接器版本:

  • 2.2.23 以上版本 (如果使用的是 2.x.x 版)
  • 3.0.1 以上版本 (如果使用 3.x.x 版)

舊版連接器 (3.0.0 和 2.2.23 以下版本) 有一些限制。如要進一步瞭解限制,請參閱「與 Cloud Storage 連接器 3.0.0 版或 2.2.23 以前版本的相容性」。

在叢集上啟用 Cloud Storage 連接器

本節說明如何在 Managed Service for Apache Spark 叢集和自行管理的 Hadoop 叢集上,啟用 Cloud Storage 連接器。

Managed Service for Apache Spark

您可以使用 Google Cloud CLI 建立 Managed Service for Apache Spark 叢集,並啟用 Cloud Storage 連接器來執行資料夾作業。

  1. 使用下列指令建立 Managed Service for Apache Spark 叢集:

      gcloud dataproc clusters create CLUSTER_NAME
      --properties=core:fs.gs.hierarchical.namespace.folders.enable=true,
      core:fs.gs.http.read-timeout=30000
      

    其中:

    • CLUSTER_NAME 是叢集名稱。例如:my-cluster
    • fs.gs.hierarchical.namespace.folders.enable 用於啟用 bucket 的階層命名空間。
    • fs.gs.http.read-timeout 是從已建立的連線讀取資料時,允許的時間上限 (以毫秒為單位)。這項設定為選用。

自行管理的 Hadoop

您可以在自行管理的 Hadoop 叢集上啟用 Cloud Storage 連接器,以便執行資料夾作業。

  1. 在 core-site.xml 設定檔中新增下列內容:

        <property>
          <name>fs.gs.hierarchical.namespace.folders.enable</name>
          <value>true</value>
        </property>
        <property>
          <name>fs.gs.http.read-timeout</name>
          <value>30000</value>
        </property>
      

    其中:

    • fs.gs.hierarchical.namespace.folders.enable 用於啟用 bucket 的階層命名空間
    • fs.gs.http.read-timeout 是從已建立的連線讀取資料時,允許的時間上限 (以毫秒為單位)。這項設定為選用。

與 Cloud Storage 連接器 3.0.0 版或 2.2.23 以前版本的相容性

如果使用 Cloud Storage 連接器 3.0.0 版或 2.2.23 之前的版本,或停用階層命名空間的資料夾作業,可能會導致下列限制:

  • 資料夾重新命名效率不彰:Hadoop 中的資料夾重新命名作業是使用物件層級的複製和刪除作業,比專屬的 rename folder 作業更慢且效率更低。

  • 空資料夾累積:資料夾不會自動刪除,導致 bucket 中累積空資料夾。空資料夾累積過多可能造成下列影響:

    • 如未明確刪除,會增加儲存空間費用。
    • 降低清單作業速度,並提高清單作業逾時的風險。

  • 相容性問題:混合使用新舊連接器版本,或啟用及停用資料夾作業,可能會在重新命名資料夾時導致相容性問題。請參考下列情境,其中結合了多個連接器版本:

    1. 使用 2.2.23 以下版本的 Cloud Storage 連接器,執行下列工作:

      1. 在資料夾 foo/ 下寫入物件。
      2. 將資料夾 foo/ 重新命名為 bar/。重新命名作業會複製並刪除 foo/ 下的物件,但不會刪除空的 foo/ 資料夾。
    2. 使用 Cloud Storage 連接器 2.2.23 版,並啟用資料夾作業設定,將資料夾 bar/ 重新命名為 foo/。

    連接器 2.2.23 版啟用資料夾作業後,會偵測到現有的 foo/ 資料夾,導致重新命名作業失敗。舊版連接器未刪除 foo/ 資料夾,因為資料夾作業已停用。

後續步驟

歡迎試用

如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Cloud Storage 平台的成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。

免費試用 Cloud Storage