Alluxio
ProductsLanguageHome
AI-3.5 (stable)
AI-3.5 (stable)
  • 概览
  • 部署Alluxio
    • 资源需求和兼容性
    • 在Kubernetes上安装Alluxio
    • 监控和指标
    • Alluxio 集群操作
    • 系统健康检查和快速恢复
    • 采集集群信息
  • 架构
    • Alluxio 命名空间和底层文件系统命名空间
    • I/O弹性
    • worker管理与一致性哈希
  • 底层存储系统
    • Amazon AWS S3
    • HDFS
    • 阿里云 OSS
    • 腾讯 COS
    • 火山引擎 TOS
    • 谷歌云 GCS
  • Client APIs
    • 基于 FSSpec 的Alluxio Python Filesystem API
    • 基于 FUSE 的 POSIX API
      • Client 写回
    • S3 API
  • 缓存操作
    • 缓存预加载
    • 缓存过滤
    • 缓存驱逐
      • TTL (有效时间)规则
      • 优先级规则
      • 通过命令行释放缓存空间
  • 资源管理
    • 基于目录的集群配额
    • UFS 带宽限制
  • 性能优化
    • 通过副本提高读取吞吐量
    • 读取大文件
    • 元数据列表
    • 数据预拉取
    • 写入临时文件
  • 安全
    • TLS 支持
  • 性能基准测试
    • Fio 测试概览
    • MLPerf Storage 基准测试
    • COSBench 性能基准测试
  • 参考
    • 用户命令行接口
    • 指标
    • S3 API 的使用
    • 第三方授权
  • 版本发布说明
Powered by GitBook
On this page
  • 先决条件
  • 基本设置
  • 进阶设置
  • 自定义目录后缀
  • GCS 在 GCS 中,目录表示为以指定后缀命名的零字节对象。可以使用配置参数 alluxio.underfs.gcs.directory.suffix 来更新目录后缀。
  • 从 GCS ACL 到 Alluxio 权限的映射
  • 从 GCS 用户到 Alluxio 文件所有者(仅限 GCS 版本1)
  • 通过代理访问GCS(仅限 GCS 版本2)
  1. 底层存储系统

谷歌云 GCS

Last updated 3 months ago

本指南介绍了如何配置 Alluxio,将 作为底层存储系统使用。

Google Cloud Storage (GCS) 是 Google Cloud Platform (GCP) 提供的一个可扩展且耐久性高的对象存储服务。 它允许用户存储和检索各种类型的数据,包括非结构化数据和结构化数据。

有关 GCS 的更多信息,请参阅 。

先决条件

将 GCS 与 Alluxio 共同使用前的准备:

<GCS_BUCKET>

<GCS_DIRECTORY>

希望在存储桶中使用的目录,可以创建新目录或使用现有目录

Alluxio 提供两种 GCS 访问方式。GCS 版本 1 基于针对 AWS S3 设计的 库实现。 因此,它只接受 Google Cloud Storage 互操作访问/密钥对,允许对 Google Cloud 项目内的所有 Google Cloud Storage 进行完全访问。 在使用互操作密钥时,不能定义任何权限或进行访问控制。 Google 互操作 API 与 jets3t 库的结合对默认的 GCS UFS 模块的性能有影响。

默认的 GCS UFS 模块(GCS 版本 2)基于 Google Cloud API 实现,接受 。 在创建应用凭证时,可以通过定义细粒度的权限来限制对特定存储桶的访问。 与 GCS 版本 1 相比,版本 2的元数据和 I/O 性能更好。

基本设置

使用 添加新的挂载点,指定创建挂载点的Alluxio 路径,并将 GCS 路径指定为 UFS URI。 凭证和配置选项也可以作为挂载命令的一部分,通过指定 --option 标签来进行配置,详见 。

选择所偏好的 GCS UFS 版本并提供相应的 Google 凭证。

GCS version 2

按照 GCS v2 的方式将 gs://<GCS_BUCKET>/<GCS_DIRECTORY> 挂载到 /gs的命令示例如下:

bin/alluxio mount add --path /gs/ --ufs-uri gs://<GCS_BUCKET>/<GCS_DIRECTORY> \
  --option fs.gcs.credential.path=/path/to/<google_application_credentials>.json

属性键 fs.gcs.credential.path 提供了 Google 应用凭证 JSON 文件的路径。 请注意,Google 应用凭证 JSON 文件应置于所有 Alluxio 节点的同一路径下。 如果运行 Alluxio 进程的节点已经包含 GCS 凭证,则可能不需要该属性,但还是建议明确设置这一属性。

GCS version1

按照 GCS v1 的方式将 gs://<GCS_BUCKET>/<GCS_DIRECTORY> 挂载到 /gs的命令示例如下:

bin/alluxio mount add --path /gs/ --ufs-uri gs://<GCS_BUCKET>/<GCS_DIRECTORY> \
  --option alluxio.underfs.gcs.version=1 --option fs.gcs.accessKeyId=<GCS_ACCESS_KEY_ID> \
  --option fs.gcs.secretAccessKey=<GCS_SECRET_ACCESS_KEY>

进阶设置

自定义目录后缀

在 GCS 中,目录表示为以指定后缀命名的零字节对象。 可以使用配置参数 alluxio.underfs.gcs.directory.suffix 来更新目录后缀。

GCS 在 GCS 中,目录表示为以指定后缀命名的零字节对象。可以使用配置参数 alluxio.underfs.gcs.directory.suffix 来更新目录后缀。

如果启用了 Alluxio 安全性,Alluxio 将执行从底层对象存储继承的访问控制。

在 Alluxio 配置中指定的 GCS 凭证代表一个 GCS 用户。 GCS 服务后端会检查用户对存储桶和对象的权限以进行访问控制。 如果给定的 GCS 用户没有对指定存储桶的正确访问权限,则会抛出拒绝访问的报错。 当启用 Alluxio 安全性时,Alluxio 会在首次将元数据加载到 Alluxio 命名空间时,将存储桶的 ACL 加载到 Alluxio 权限中。

从 GCS ACL 到 Alluxio 权限的映射

Alluxio 检查 GCS 存储桶的读/写 ACL 以确定所有者对 Alluxio 文件的权限模式。 例如,如果 GCS 用户对底层存储桶具有只读访问权限,则挂载的目录和文件将具有0500模式。 如果 GCS 用户对底层存储桶具有完全访问权限,则挂载的目录和文件将具有0700模式。

从 GCS 用户到 Alluxio 文件所有者(仅限 GCS 版本1)

默认情况下,Alluxio 尝试从凭证中提取 GCS 用户 ID。 可以选择性地使用alluxio.underfs.gcs.owner.id.to.username.mapping来指定预设的GCS 所有者 ID 到 Alluxio 用户名的静态映射,格式为 id1=user1;id2=user2。 Google Cloud Storage ID 可以在控制台地址中找到。 请使用Owners部分的 ID。

通过代理访问GCS(仅限 GCS 版本2)

如果 Alluxio 集群位于公司代理或防火墙后面,默认设置下 Alluxio 与 GCS 集成可能无法访问网络。

在启动 Alluxio coordinator 和 worker 之前,请将以下 Java 选项添加到 conf/alluxio-env.sh中:

ALLUXIO_COORDINATOR_JAVA_OPTS+=" -Dhttps.proxyHost=<proxy_host> -Dhttps.proxyPort=<proxy_port> -Dhttp.proxyHost=<proxy_host> -Dhttp.proxyPort=<proxy_port> -Dhttp.nonProxyHosts=<non_proxy_host>"
ALLUXIO_WORKER_JAVA_OPTS+=" -Dhttps.proxyHost=<proxy_host> -Dhttps.proxyPort=<proxy_port> -Dhttp.proxyHost=<proxy_host> -Dhttp.proxyPort=<proxy_port> -Dhttp.nonProxyHosts=<non_proxy_host>"

http.nonProxyHosts的示例值是localhost|127.*|[::1]|192.168.0.0/16。

如果代理需要用户名和密码,请添加 http.proxyUser、https.proxyUser、 http.proxyPassword 和 https.proxyPasswordJava 选项。

或者使用现有的存储桶

第一个属性键告诉 Alluxio 加载 GCS 版本1的 UFS 模块,该模块使用 库。

将 <GCS_ACCESS_KEY_ID> 和 <GCS_ACCESS_KEY_ID> 替换为实际的 ,或其他包含凭证的环境变量。

注:GCS 互操作性是默认禁用的。请点击 中的互操作性选项卡并启用此功能。点击Create a new key获取访问密钥和密钥对。

jets3t
GCS 互操作存储访问密钥
GCS 设置
在 Google Cloud 账户中创建一个新的存储桶
Google Cloud Storage (GCS)
文档
jets3t
Google 应用凭证
挂载表操作
配置挂载点