将启用了分层命名空间的存储桶用于 Hadoop 工作负载

本页介绍了如何将启用了分层命名空间的存储桶用于 Hadoop 工作负载。

概览

使用带有分层命名空间的 Cloud Storage 存储桶时,您可以将 Cloud Storage 连接器配置为对 Hadoop、Spark、Hive 等工作负载使用重命名文件夹操作。

在没有分层命名空间的存储桶中,Hadoop、Spark 和 Hive 中的重命名操作涉及多个对象复制和删除作业,从而影响性能和一致性。在处理包含大量对象的文件夹时,使用 Cloud Storage 连接器重命名文件夹可优化性能并确保一致性。

Dataproc

您可以使用 Google Cloud CLI 创建 Dataproc 集群,并启用 Cloud Storage 连接器以执行文件夹操作。

  1. 安装或更新 Cloud Storage 连接器 2.2.23 版或更高版本(不包括 3.0.0 版)。

  2. 使用以下命令创建 Dataproc 集群:

      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 用于在存储桶上启用分层命名空间。
    • fs.gs.http.read-timeout 是从已建立连接中读取数据的最大时长(以毫秒为单位)。这是可选设置。

自行管理的 Hadoop

您可以在自行管理 Hadoop 集群上启用 Cloud Storage 连接器,以执行文件夹操作。

  1. 安装或更新 Cloud Storage 连接器 2.2.23 版或更高版本(不包括 3.0.0 版)。

  2. 将以下内容添加到 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 用于在存储桶上启用分层命名空间
    • fs.gs.http.read-timeout 是从已建立连接中读取数据的最大时长(以毫秒为单位)。这是可选设置。

与 Cloud Storage 连接器版本 3.0.0 或 2.2.23 之前的版本的兼容性

使用 Cloud Storage 连接器版本 3.0.0 或 2.2.23 之前的版本,或停用分层命名空间的文件夹操作,可能会导致以下限制:

  • 文件夹重命名效率低下:Hadoop 中的文件夹重命名操作使用的是对象级复制和删除操作,这比专用 rename folder 操作速度更慢且效率更低。

  • 空文件夹堆积:文件夹资源不会自动删除,导致存储桶中堆积空文件夹。空文件夹的堆积可能会产生以下影响:

    • 如果未明确删除,则会增加存储空间费用。
    • 减慢列表操作速度并增加列表操作超时风险。

  • 兼容性问题:在重命名文件夹时,混合使用旧版和新版连接器版本,或启用和停用文件夹操作,可能会导致兼容性问题。请考虑以下使用多种连接器版本的场景:

    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