您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何使用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 或更高版本
從 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 的詳細步驟。
在使用 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
在上傳數據到 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。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。