千家信息网

如何使用AWS S3 offloader卸载存储在BookKeeper中的数据

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家介绍如何使用AWS S3 offloader卸载存储在BookKeeper中的数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。对于大量不需要快速访问的数据,建议你
千家信息网最后更新 2026年11月03日如何使用AWS S3 offloader卸载存储在BookKeeper中的数据

这篇文章给大家介绍如何使用AWS S3 offloader卸载存储在BookKeeper中的数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

对于大量不需要快速访问的数据,建议你使用 Apache Pulsar 的内置功能--分层存储--它也是 Pulsar 分片架构的原生优势。

通过分层存储,你可以从 Apache BookKeeper 卸载数据到可扩展、无限的廉价云原生存储(例如 AWS S3 或 Google Cloud Storage)或 filesystem,构建高性能的消息集群,并降低运维成本。

AWS S3 offloader 是 StreamNative Hub 上托管的一个 Pulsar 插件。

如何通过 AWS S3 offloader 将存储在 BookKeeper 中的数据卸载至 AWS S3。




安 装


按照以下步骤安装 AWS S3 offloader。本示例使用 Pulsar 2.5.1。

???? 准备工作

Apache jclouds:2.2.0 或更高版本

1. 选择以下任一方式下载 Pulsar 压缩包:
  • 从 Apache mirror下载
    https://archive.apache.org/dist/pulsar/pulsar-2.5.1/apache-pulsar-2.5.1-bin.tar.gz

  • 从 Pulsar 下载页面下载
    https://pulsar.apache.org/download

  • 通过 wget 命令下载

wget https://archive.apache.org/dist/pulsar/pulsar-2.5.1/apache-pulsar-2.5.1-bin.tar.gz

2. 下载并解压 Pulsar offloaders 安装包。

wget https://downloads.apache.org/pulsar/pulsar-2.5.1/apache-pulsar-offloaders-2.5.1-bin.tar.gz
tar xvfz apache-pulsar-offloaders-2.5.1-bin.tar.gz
需注意:
  • 在裸机集群中运行 Pulsar 时,需要保证每个 broker 所在的 Pulsar 目录中,都有 `offloaders` 解压缩后的安装文件。


  • 在 Docker 中运行 Pulsar 或使用 Docker image(例如 K8S、DCOS)部署 Pulsar 时,可以使用 `apachepulsar/pulsar-all` image 而不使用 `apachepulsar/pulsar` image。`apachepulsar/pulsar-all` image 已经包含了分层存储 offloaders。

3. 在本地 Pulsar 目录中创建 offloaders 文件夹,将解压后的 Pulsar offloaders 文件复制到此处。

mv apache-pulsar-offloaders-2.5.1/offloaders apache-pulsar-2.5.1/offloaders
ls offloaders
>> 输出

如下输出所示,Pulsar 通过 Apache jclouds(https://jclouds.apache.org)支持 AWS S3 和 GCS。

   tiered-storage-file-system-2.5.1.nar   tiered-storage-jcloud-2.5.1.nar


使 用


以下内容为在 Pulsar 中使用 AWS S3 offloader 的详细步骤。

第 1 步:配置 AWS S3 offloader driver

在使用 AWS S3 offloader driver 前,需要为它配置一些属性。更多关于「如何配置 AWS S3 offloader driver 属性」的信息,可以参阅:
https://hub.streamnative.io/offloaders/aws-s3/2.5.1/#configuration

本示例假设已配置了以下参数,并以单机模式运行 Pulsar。

在 `conf/standalone.conf` 中,配置以下参数。

managedLedgerOffloadDriver=aws-s3  s3ManagedLedgerOffloadBucket=test-pulsar-offload  s3ManagedLedgerOffloadRegion=us-west-2
需注意:

为了加快 ledger 轮询,你可以在测试环境中进行以下配置,但不建议在生产环境中进行以下配置。

managedLedgerMinLedgerRolloverTimeMinutes=1managedLedgerMaxEntriesPerLedger=5000

在 `conf/pulsar_env.sh` 中,配置以下参数。

export AWS_ACCESS_KEY_ID=ABCDEFG123456789export AWS_SECRET_ACCESS_KEY=QWERYHBDSSGJJBVCCDCCC
第 2 步:创建 AWS S3 存储桶

在上传数据到 AWS S3 前,需要先在 AWS 区域(Region)中创建存储桶(bucket),用于存储数据。创建存储桶后,可以向存储桶上传无限容量的数据。

你可以配置存储桶的属性,包括地理区域、存储桶中对象的访问设置和其它元数据。

1. 登录到 AWS 管理控制面板,然后打开 Amazon S3 控制面板。

2. 点击创建存储桶。

3. 设置存储桶名称和[区域(Region)。

需注意:

创建存储桶后,存储桶名称不可更改。更多关于存储桶命名的信息,可以参阅存储桶命名规则:
https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules

此前已配置过 AWS S3 offloader driver,此处的`存储桶名称`应与已配置的 `s3ManagedLedgerOffloadBucket` 值一致,`区域名称`应与已配置的 `s3ManagedLedgerOffloadRegion` 值一致。

4. 在存储桶的"阻止公有访问"设置中,选择你想要为存储桶设置的公有访问权限。

5. 点击创建存储桶。现在,你已经成功创建了一个存储桶。

第 3 步:创建组

1. 登录到 AWS 管理控制面板,然后打开 IAM 控制面板。

2. 在左侧导航栏中,点击组 > 创建新组。

3. 在组名对话框中,填写组名,点击下一步。

4. 在附加策略列表中,选中想要应用于组中所有成员的策略,点击下一步。

5. 检查所有已选择的配置,选择创建新组。

当你成功创建新组后,你会看到下图所示的界面。

第 4 步:创建用户

1. 登录到 AWS 管理控制面板,然后打开 IAM 控制面板。

2. 在导航窗格中,选择用户 > 添加用户。

3. 输入用户名(大小写不敏感),然后选择 AWS 访问类型。

4. 点击下一步:权限。

5. 在设置权限界面,选择你想为用户设置的权限。

6. 选择下一步:标签。

7. (可选项)为用户添加标签,选择下一步:审核。

需注意:

更多关于 IAM 中标签的信息,可以参阅「为 IAM 用户和角色添加标签」:
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html

8. 检查所有设置,选择创建用户。

9. 点击密码旁边的显示,即可查看用户的访问密钥(`访问密钥 ID` 和`私有访问密钥`)。

此前已配置过 AWS S3 offloader driver,此处的`访问密钥 ID` 应与已配置的 `AWS_ACCESS_KEY_ID` 值一致,`私有访问密钥`应与已配置的 `AWS_SECRET_ACCESS_KEY` 值一致。

需注意:

点击下载 .csv 即可保存访问密钥文件,这是查看或下载访问密钥的唯一机会。在用户使用 AWS API 前,需要向用户提供访问密钥信息。因此需要妥善保存用户的新访问密钥 ID 和私有访问密钥,此步骤后将无法获取访问密钥。

第 5 步:从 BookKeeper 卸载数据到 AWS S3

以下命令均在本地 Pulsar 所在的文件夹(例如 `~/path/to/apache-pulsar-2.5.1`)中执行。

1. 以单机模式启动 Pulsar。

 ./bin/pulsar standalone -a 127.0.0.1

2. 为保证生成的数据不会被立刻删除,建议设置保留策略。保留策略可以设置为大小限制或时间限制,设置的值越大,数据保留的时间越长。

./bin/pulsar-admin namespaces set-retention public/default --size -10G --time 3d
提示:

更多关于 `pulsar-admin namespaces set-retention options` 命令的信息(包括 flags、说明、默认值等),可以参阅:
http://pulsar.apache.org/tools/pulsar-admin/2.6.0-SNAPSHOT/#-em-set-retention-em-

3. 使用 pulsar-perf 生产数据。

./bin/pulsar-perf produce -r 1000 -s 2048 test-topic

4. Ledger 发生切换后,卸载操作才会开始。为了确保卸载操作成功执行,建议多等待几个 ledger 发生切换(这种情况下,需要等待大约 1 秒钟)。可以使用 pulsar-admin 查看 ledger 状态。

 ./bin/pulsar-admin topics stats-internal test-topic

5. Ledger 切换后,你可以手动触发卸载操作。

另外,你也可以设置自动触发卸载操作。更多关于如何设置自动触发卸载操作,可以参阅:
https://hub.streamnative.io/offloaders/aws-s3/2.5.1/#configure-aws-s3-offloader-to-run-automatically

./bin/pulsar-admin topics offload --size-threshold 10M public/default/test-topic

>> 输出

Offload triggered for persistent://public/default/test-topic for messages before 12:0:-1

6. 检查卸载操作的状态。

./bin/pulsar-admin topics offload-status -w public/default/test-topic

卸载操作可能会需要一段时间。

>> 输出

 Offload was a success

操作完成后,数据成功卸载到 AWS S3。


关于如何使用AWS S3 offloader卸载存储在BookKeeper中的数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
存储 配置 数据 用户 密钥 选择 更多 面板 控制 信息 文件 一致 成功 区域 名称 建议 权限 策略 输出 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司简介 互联网是第几次科技革命的成果 科技与互联网 科技企业和互联网企业 互联网最新的科技有限公司 互联网金融 金融科技 宜安科技 互联网金融 济南和联互联网科技有限公司 中国航天科技大学国际工业互联网 广州市恰铎互联网科技有限公司 中国科技创新与世界互联网大会 佛山市翊博互联网络科技有限公司 华夏恒生科技与互联网科技 每天都有哪些好的互联网科技 小米互联网科技园入驻 领航科技大厦互联网公司 互联网时代科技型公司的机会 北京互联网科技类企业分布 盐城市攀科互联网科技有限公司 杭州科技互联网公司有哪些 互联网 的科技创新 碳银互联网科技有限公司 哈尔滨秒房互联网科技有限公司 济南和联互联网科技有限公司 互联网科技有哪些公司 受益于互联网科技的高速发展 互联网科技研发水平 上海同邻互联网科技有限公司规模 互联网高科技行业有哪些企业 保山互联网科技靠谱吗
0