租用帮助

如何使用AWS S3 offloader卸载存储在BookKeeper中的数据
2023-08-08 16:51:47
阅读()
摘要:     这篇文章给大家介绍如何使用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. 点击创建存储桶。


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

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

需注意:

创建存储桶后,存储桶名称不可更改。更多关于存储桶命名的信息,可以参阅存储桶命名规则:

https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules

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


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

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


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

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


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

第 3 步:创建组

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

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


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

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


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

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


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

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


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

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


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

第 4 步:创建用户

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

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


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

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


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

4. 点击下一步:权限。

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


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

6. 选择下一步:标签。

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

需注意:

更多关于 IAM 中标签的信息,可以参阅「为 IAM 用户和角色添加标签」:

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html


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

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


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

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

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

需注意:

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


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

第 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中的数据

关于如何使用AWS S3 offloader卸载存储在BookKeeper中的数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


相关产品
HKT4为您的网站提供全球IDC资源
立即免费测试