S3

Ozone

师成师成· 更新于 2026-09-29· 阅读 3 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

在 Apache Ozone 上创建目录

基于 Apache Ozone 存储创建目录时,重要的一点是将 endpoint 属性配置为指向你自己的存储集群。如果未设置 endpoint 属性,Polaris 将尝试连接 AWS 存储服务(在这种情况下必然会失败)。

注意:--no-sts CLI 选项指示 Polaris 避免使用 AssumeRoles 请求调用 STS 端点。这意味着 Polaris 及其客户端(引擎)都必须使用各自独立的(本地)凭据来访问存储。在这种情况下,引擎不应请求凭据下发(不应使用 X-Iceberg-Access-Delegation=vended-credentials 请求头)。

注意:Ozone 并不要求设置 region,但为了简单起见,本示例中进行了设置,因为 Polaris 内部使用的 AWS SDK 通常需要该设置。也可以在 Polaris 服务端进程中设置 AWS_REGION 环境变量,从而无需将 region 作为目录属性设置。

注意:下面示例中的 quickstart_catalog 名称在其他入门示例中被引用,当然,它可以是任何有效的目录名称。

CLIENT_ID=root
CLIENT_SECRET=s3cr3t
DEFAULT_BASE_LOCATION=s3://example-bucket/my_data

polaris \
  --client-id ${CLIENT_ID} \
  --client-secret ${CLIENT_SECRET} \
  catalogs \
  create \
  --storage-type s3 \
  --endpoint http://127.0.0.1:9878
  --no-sts
  --path-style-access
  --default-base-location ${DEFAULT_BASE_LOCATION} \
  --region irrelevant \
  quickstart_catalog

在更复杂的部署场景中,可能需要为 S3 请求和 STS(AssumeRole)请求配置不同的端点。这可以通过 --sts-endpoint CLI 选项来实现。

此外,如果 Polaris Server 自身需要使用的 S3 端点与客户端/引擎所使用的端点不同,可以使用 --endpoint-internal CLI 选项来设置 Polaris Server 自身使用的 S3 端点。

Polaris 源代码中的 getting-started/ozone 模块提供了一个可用于 docker-compose 的 Apache Ozone 示例。

评论

登录后参与评论

正在加载评论…