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