在阿帕奇卡夫卡集群中劃分冷熱數(shù)據(jù)層以實現(xiàn)最佳性能
起初,數(shù)據(jù)分層是存儲系統(tǒng)用來降低數(shù)據(jù)存儲成本的一種策略。這涉及到將常常無法訪問的數(shù)據(jù)分組到更經(jīng)濟有效的存儲數(shù)組選擇中。例如,閑置一年或更長時間的數(shù)據(jù)可能會從昂貴的閃存層轉移到更便宜的SATA磁盤層。即使它們非常昂貴,SSDS和閃存也可以歸類為高性能存儲類。主動使用并需要最大性能的較小數(shù)據(jù)集通常存儲在閃存中。
云數(shù)據(jù)分集技術在客戶尋求將數(shù)據(jù)分集或歸檔到公共云的替代選項時獲得了流行。公共云目前提供了一個混合的對象和文件存儲選項。對象存儲類,如亞馬遜S3和天藍球(天藍存儲)提供了顯著的成本效率和所有的好處,而沒有復雜的設置和管理。
"熱"數(shù)據(jù)和"冷"數(shù)據(jù)可以從多個節(jié)點卡夫卡集群的角度來看待。進入卡夫卡主題的數(shù)據(jù)和到達下游應用程序的快速檢索,作為通過各種數(shù)據(jù)管道后的最終輸出,可以被稱為"熱"數(shù)據(jù)。例如,從煉油廠使用的各種關鍵設備中獲得的微循環(huán)傳感器事件。類似地,下游應用程序不經(jīng)常訪問的輸入到卡夫卡主題中的數(shù)據(jù)可以被稱為"冷"數(shù)據(jù)。作為"冷"數(shù)據(jù)的一個例子,我們可以考慮電子商務應用中的庫存更新,吸收產(chǎn)品數(shù)量等。來自第三方倉庫系統(tǒng)。冷數(shù)據(jù)可以從集群轉移到成本效益高的存儲解決方案。
在根據(jù)下游應用程序的需求將數(shù)據(jù)分類為卡夫卡主題之后,我們可以將數(shù)據(jù)層指定為 熱層 關于熱數(shù)據(jù)和 冷層 卡夫卡集群中的冷數(shù)據(jù)。高性能的存儲選項,如NVME(非易失性內存快速處理器)或SSDS(固態(tài)驅動器),可以用于熱數(shù)據(jù)層,因為需要快速檢索數(shù)據(jù)。類似地,可擴展的云存儲服務,如亞馬遜S3,可以用于冷層。歷史數(shù)據(jù)和不經(jīng)常訪問的數(shù)據(jù)被確定為冷數(shù)據(jù)是理想的冷層。當然,卡夫卡主題所包含的數(shù)據(jù)量以及保留期也是選擇云存儲的決定因素。
卡夫卡主題的基本執(zhí)行程序
熱數(shù)據(jù)層
如上所述,SSD或NVME是用于熱數(shù)據(jù)層和用于冷數(shù)據(jù)層的可伸縮云存儲的;同樣的可以在卡夫卡的 服務、財產(chǎn) 文件。主題配置有一個默認設置 服務、財產(chǎn) 文件,在每個主題的基礎上覆蓋它的選項。如果沒有為某一專題提供具體的值,則在 服務、財產(chǎn) 文件將被使用。不過,使用--config 選項,我們可以覆蓋在 服務、財產(chǎn) 文件。
在此場景中,我們希望創(chuàng)建的主題應該將熱層數(shù)據(jù)存儲在一個目錄中,該目錄中的位置應該位于提供高速接入的存儲設備上,例如SSDS或NVME設備。
作為第一步,我們應該禁用 服務、財產(chǎn) 文件。默認情況下,卡夫卡會自動創(chuàng)建不存在的主題。然而,在分層存儲場景中,最好是禁用自動主題創(chuàng)建,以保持對主題配置的更大控制。我們需要在 服務、財產(chǎn) 文件。
· #禁用自動主題創(chuàng)建
auto.create.topics.enable=false
在第二步,更新log.dirs 酒店具有一個位置到提供高速接入的存儲設備。
log.dirs=/path/to/SSD or / NVMe devices for hot tier
最后,使用--config 選項在服務器.屬性文件。
topic.config.my_topic_for_hot_tier= log.dirs=/path/to/SSD or NVMe devices for hot tier
我們可能需要調整其他的鍵值對 服務、財產(chǎn) 根據(jù)我們獨特的用例和諸如log.retention.hours ,default.replication.factor ,以及l(fā)og.segment.bytes .
冷數(shù)據(jù)層
如上所述,可擴展的云存儲服務,如亞馬遜S3,可以用于冷層。在卡夫卡中有兩種配置冷層的選項。一個是使用融合器內置的亞馬遜S3接收器連接器,另一個是在卡夫卡的網(wǎng)站上配置亞馬遜S3桶。 服務、財產(chǎn) 文件。
亞馬遜S3接收器連接器從阿帕奇卡夫卡主題導出數(shù)據(jù)到S3對象,無論是用avro格式、JSON格式還是字節(jié)格式。它定期從卡夫卡進行民意測驗,然后將數(shù)據(jù)上傳到S3。在從指定的主題中消費記錄并將它們組織到不同的分區(qū)之后,亞馬遜S3接收器連接器從每個分區(qū)向一個文件發(fā)送成批的記錄,然后將這些記錄上傳到S3桶中。我們可以通過使用融合連接插件安裝命令安裝這個連接器,或者通過手動下載ZIP文件,并且必須在將要運行的集群上的每臺機器上安裝連接器。
除此之外,我們還可以用卡夫卡的 服務、財產(chǎn) 使用以下步驟,為利用S3桶的冷數(shù)據(jù)層歸檔并創(chuàng)建一個主題:
· 更新log.dirs 屬性,具有位置到S3存儲位置。我們需要確保設置所有必要的aws憑證和權限,以便卡夫卡將其寫入指定的S3桶。
log.dirs=/path/to/S3 bucket
· 我們可以使用內置腳本創(chuàng)建一個使用冷層(S3)的主題Kafka-topics.sh .在這里我們需要設置log.dirs 該特定主題的配置指向S3路徑。
bin/kafka-topics.sh --create --topic our_s3_cold_topic --partitions 5 --replication-factor 3 --config log.dirs=s3://our-s3-bucket/path/to/cold/tier --bootstrap-server <>:9092
· 根據(jù)S3存儲的要求和特點,我們可以根據(jù)冷層調整卡夫卡配置,比如修改log.retention.hours 在…中 服務、財產(chǎn) .
最后說明
最后,通過劃分阿帕奇卡夫卡集群中的冷熱數(shù)據(jù)層,可以根據(jù)數(shù)據(jù)特性優(yōu)化存儲資源。隨著越來越多的企業(yè)開始采用實時數(shù)據(jù)流來促進業(yè)務增長,存儲的可伸縮性和成本效益變得至關重要。通過明智地實施高性能和成本效益高的存儲層,它們可以實現(xiàn)最佳性能和有效的存儲成本管理。