关于apache:Pulsar-分级存储-S3-演示

28次阅读

共计 2274 个字符,预计需要花费 6 分钟才能阅读完成。

本文会首先介绍 Pulsar 的分级存储。而后通过一个示例,演示在分级存储中怎么应用 Amazon S3 作为二级存储。

介绍

Pulsar 中的每个 Topic 由一列有序的的段(Segment)列表组成。Pulsar 只会写入其中的最初一段。除最初一段之外,之前的所有段都曾经被密封了,不能再往其中追加数据,这就是 Pulsar 的基于段(Segment)的存储构造。

Pulsar 的基于 Segment 的存储架构,反对一个 Topic 的空间大小存储满整个存储集群。然而随着要保留的 Partition 的数据的逐步增多,会让存储变的低廉。解决这个问题的一种策略就是应用分级存储(Tiered Storage)。

应用分级存储的一个场景是用户心愿对一个比拟大的 Topic 的数据保留比拟长的工夫。比方一个 Topic 中蕴含所有客户的点击记录,咱们能够用这个 topic 中的数据来训练举荐零碎。如果这个 Topic 的数据被始终保留着,当训练的算法扭转后,咱们就能够从新利用这些历史数据来训练新的举荐零碎。

Pulsar 的分级存储性能容许将较旧的积压数据卸载到二级存储中做长期存储,从而开释 BookKeeper 中的空间,进而升高存储老本。应用分级存储,咱们能够将一个 Topic 中的老的数据段(Segment)主动从 BookKeeper 搬出到更便宜的二级存储。对 Client 来说,整个过程是通明无缝的。

当 Offload 被手动或者主动触发之后,Broker 会一个接一个地将一级存储中的段,搬移到二级存储中。

Pulsar 目前反对应用 S3,Google-Cloud-Storage 作为二级存储。用户能够灵便配置 Topic 想要保留在 BookKeeper(一级存储)中的大小,和数据在搬移到二级存储后多久(默认 4 小时)从 BookKeeper 中删除。

咱们在这篇文章中会应用 S3 作为一个例子,来演示怎么应用 Pulsar 的这个个性。

Operations With S3

在这个示例中应用的是 Pulsar-2.1.1 版本,次要蕴含 3 个步骤:

  • 在 Amazon S3(https://s3.console.aws.amazon…) 中创立一个 bucket;
  • 下载 Pulsar 包,为 Pulsar 的 Broker 配置 Offload,用 Standalone 模式启动 Pulsar;
  • 用 Pulsar 的 producer 并产生数据,触发 Offload,并验证。

一, 在 S3 中创立 Bucket

  1. 登陆 AWS console,抉择 S3 服务:

  1. 创立一个 bucket,点击“Create bucket”,填上 Bucket 的名字,而后点击 next 并始终点击确认。

  1. 通过下面的操作,能够看到一个新的 Bucket 曾经被创立了。

  1. 确认在本机上配置好了 aws 的 access

二, 下载 Pulsar 包,并配置

  1. 从 Pulsar 的官网(http://pulsar.apache.org/en/d…)下载最新的 Pulsar Binary 文件 (apache-pulsar-x.x.x-bin.tar.gz),解压,筹备批改配置文件 conf/standalone.conf。

  1. 批改配置文件 conf/standalone.conf 中对于 Offload 的选项,设置第一步中创立的 bucket:

 managedLedgerOffloadDriver=S3

 s3ManagedLedgerOffloadBucket=offload-test-aws

 s3ManagedLedgerOffloadRegion=us-east-1

批改配置文件 conf/standalone.conf 中每个 segment 的大小配置,这使得每个 Segment 更小,更容易产生新的 segment。

  1. 在终端用 standalone 模式启动 Pulsar:

运行命令 bin/pulsar standalone

三, 在 Pulsar 中产生数据,触发 Offload,并验证

  1. 在终端中启动一个消费者,保障将要产生数据不会因为没有消费者被抛弃掉:

bin/pulsar-client consume -s“my-sub-name“my-topic-for-offload

  1. 开一个新的终端窗口,运行上面命令 2 次,产生 2000 条 message,保障在 topic 中有两个 Segment,这样第一个 segment 能够被搬移到 S3 上。

bin/pulsar-client produce my-topic-for-offload --messages "hello pulsar this is the content for each message" -n 1000

  1. 用命令行手动触发 Offload:

bin/pulsar-admin topics offload --size-threshold 10K public/default/my-topic-for-offload

  1. 应用命令期待 offload 胜利:

bin/pulsar-admin topics offload-status public/default/my-topic-for-offload

  1. 验证在第一个 Segment 曾经被搬移到 S3 中:

在 s3 的终端能够看到 ledger-31 曾经被存储。

应用命令行,同样能够看到这个 Topic 中有两个 Segment,第一个 Segment — ledger-31 的 offloaded 状态为 true。

以上的步骤就是咱们应用 S3 作为二级存储的整个过程。

如果想要理解更多的分级存储的内容,欢送参考 Pulsar 的官网:

http://pulsar.apache.org/docs…

http://pulsar.apache.org/docs…

正文完
 0