如何使用AWSS3offloader卸载存储在BookKeeper中的数据

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

我们提供的服务有:成都网站设计、成都网站制作、微信公众号开发、网站优化、网站认证、新邱ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的新邱网站制作公司

对于大量不需要快速访问的数据,建议你使用 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中的数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

本文名称:如何使用AWSS3offloader卸载存储在BookKeeper中的数据
本文URL:http://hbruida.cn/article/gpchcs.html