GCS
Last updated
Last updated
本指南介绍了如何配置 Alluxio,将 Google Cloud Storage (GCS)作为底层存储系统使用。
Google Cloud Storage (GCS) 是 Google Cloud Platform (GCP) 提供的一个可扩展且耐久性高的对象存储服务。 它允许用户存储和检索各种类型的数据,包括非结构化数据和结构化数据。
有关 GCS 的更多信息,请参阅 文档。
开始部署前,请参阅 先决条件。
将 GCS 与 Alluxio 共同使用前的准备:
Alluxio 提供两种 GCS 访问方式。GCS 版本 1 基于针对 AWS S3 设计的 jets3t 库实现。 因此,它只接受 Google Cloud Storage 互操作访问/密钥对,允许对 Google Cloud 项目内的所有 Google Cloud Storage 进行完全访问。 在使用互操作密钥时,不能定义任何权限或进行访问控制。 Google 互操作 API 与 jets3t 库的结合对默认的 GCS UFS 模块的性能有影响。
默认的 GCS UFS 模块(GCS 版本 2)基于 Google Cloud API 实现,接受 Google 应用凭证。 在创建应用凭证时,可以通过定义细粒度的权限来限制对特定存储桶的访问。 与 GCS 版本 1 相比,版本 2的元数据和 I/O 性能更好。
使用 挂载表操作 添加新的挂载点,指定创建挂载点的Alluxio 路径,并将 GCS 路径指定为 UFS URI。 凭证和配置选项也可以作为挂载命令的一部分,通过指定 --option
标签来进行配置,详见 配置挂载点。
选择所偏好的 GCS UFS 版本并提供相应的 Google 凭证。
在 GCS 中,目录表示为以指定后缀命名的零字节对象。 可以使用配置参数 alluxio.underfs.gcs.directory.suffix
来更新目录后缀。
alluxio.underfs.gcs.directory.suffix
来更新目录后缀。如果启用了 Alluxio 安全性,Alluxio 将执行从底层对象存储继承的访问控制。
在 Alluxio 配置中指定的 GCS 凭证代表一个 GCS 用户。 GCS 服务后端会检查用户对存储桶和对象的权限以进行访问控制。 如果给定的 GCS 用户没有对指定存储桶的正确访问权限,则会抛出拒绝访问的报错。 当启用 Alluxio 安全性时,Alluxio 会在首次将元数据加载到 Alluxio 命名空间时,将存储桶的 ACL 加载到 Alluxio 权限中。
Alluxio 检查 GCS 存储桶的读/写 ACL 以确定所有者对 Alluxio 文件的权限模式。 例如,如果 GCS 用户对底层存储桶具有只读访问权限,则挂载的目录和文件将具有0500
模式。 如果 GCS 用户对底层存储桶具有完全访问权限,则挂载的目录和文件将具有0700
模式。
默认情况下,Alluxio 尝试从凭证中提取 GCS 用户 ID。 可以选择性地使用alluxio.underfs.gcs.owner.id.to.username.mapping
来指定预设的GCS 所有者 ID 到 Alluxio 用户名的静态映射,格式为 id1=user1;id2=user2
。 Google Cloud Storage ID 可以在控制台地址中找到。 请使用Owners
部分的 ID。
如果 Alluxio 集群位于公司代理或防火墙后面,默认设置下 Alluxio 与 GCS 集成可能无法访问网络。
在启动 Alluxio coordinator 和 worker 之前,请将以下 Java 选项添加到 conf/alluxio-env.sh
中:
http.nonProxyHosts
的示例值是localhost|127.*|[::1]|192.168.0.0/16
。
如果代理需要用户名和密码,请添加 http.proxyUser
、https.proxyUser
、 http.proxyPassword
和 https.proxyPassword
Java 选项。
<GCS_BUCKET>
在 Google Cloud 账户中创建一个新的存储桶 或者使用现有的存储桶
<GCS_DIRECTORY>
希望在存储桶中使用的目录,可以创建新目录或使用现有目录