使用Alluxio加速基于Ceph對象存儲的數(shù)據(jù)分析
1.介紹
隨著企業(yè)收集的數(shù)據(jù)量的不斷增長,人們迫切需要找到高效的存儲解決方案。由于簡單性,可擴(kuò)展性和具有成本效益,對象存儲(包括Ceph)已經(jīng)越來越成為傳統(tǒng)文件系統(tǒng)的常用替代方案。在大多數(shù)情況下,對象存儲系統(tǒng)采用內(nèi)部部署或在云中部署,與進(jìn)行分析的計(jì)算節(jié)點(diǎn)相互分離。這種分離有幾點(diǎn)好處。
- 提高成本效益——存儲容量和計(jì)算能力可以單獨(dú)配置。這樣做簡化了容量規(guī)劃,并確保能夠更好地利用資源。
- 易于管理——將數(shù)據(jù)與計(jì)算分離意味著單個(gè)存儲平臺可被不同的計(jì)算集群所共享。例如,一個(gè)運(yùn)行著長時(shí)間服務(wù)的集群將數(shù)據(jù)發(fā)送到對象存儲,可以和數(shù)據(jù)處理集群一起運(yùn)行,從而挖掘出一些價(jià)值。
然而,這種架構(gòu)的后果是數(shù)據(jù)遠(yuǎn)離計(jì)算節(jié)點(diǎn)。當(dāng)直接在對象存儲上進(jìn)行分析時(shí),會從存儲節(jié)點(diǎn)反復(fù)提取數(shù)據(jù),從而導(dǎo)致性能下降。這種延遲可能會妨礙一些關(guān)鍵的數(shù)據(jù)價(jià)值被及時(shí)提取。
在計(jì)算節(jié)點(diǎn)上部署Alluxio可以解決這一問題。通過智能地存儲與計(jì)算密切相關(guān)的活動歸檔數(shù)據(jù),將性能提升至內(nèi)存級速度,從而實(shí)現(xiàn)對數(shù)據(jù)熱點(diǎn)的快速分析。
2.示例架構(gòu)
3.為什么選擇Alluxio
Alluxio是一個(gè)能達(dá)到內(nèi)存級速度的虛擬分布式文件系統(tǒng)。它駐留在計(jì)算節(jié)點(diǎn)上,并按照集群的規(guī)模進(jìn)行擴(kuò)展。Alluxio管理內(nèi)存中的數(shù)據(jù),并且選擇性地管理輔助存儲層的數(shù)據(jù),例如便宜的SSD和HDD,從而獲得額外的容量。通過將熱數(shù)據(jù)保存在計(jì)算節(jié)點(diǎn)的內(nèi)存中,并在任意輔助層之間無縫地遷移數(shù)據(jù),Alluxio在大多數(shù)情況下可以實(shí)現(xiàn)以內(nèi)存速度訪問遠(yuǎn)程數(shù)據(jù)。這種加速是熱點(diǎn)數(shù)據(jù)分析的一個(gè)關(guān)鍵推動者。
Alluxio還能在不同的計(jì)算框架之間以及同一框架內(nèi)的不同作業(yè)之間共享數(shù)據(jù)。無論上層使用的是何種計(jì)算引擎,計(jì)算集群的所有用戶都可以在本地獲取數(shù)據(jù)并重復(fù)訪問。因此,計(jì)算節(jié)點(diǎn)上數(shù)據(jù)的生命周期與訪問它的作業(yè)或框架是分離的。通過數(shù)據(jù)共享,Alluxio可確保內(nèi)存中不存在冗余的數(shù)據(jù)副本,從而降低了容量需求和成本。
應(yīng)用程序利用Alluxio的簡單性和靈活性持續(xù)訪問數(shù)據(jù),就像是運(yùn)行在運(yùn)程對象存儲上一樣。任何需要持久化的結(jié)果或轉(zhuǎn)換都可以由Alluxio通過配置同步地將更改傳播到底層對象存儲系統(tǒng)中來完成。這樣確保了沒有數(shù)據(jù)丟失從而易于管理。此外,用戶可以選擇僅在Alluxio內(nèi)存中存儲臨時(shí)數(shù)據(jù)或中間數(shù)據(jù),從而允許以內(nèi)存速度寫入。
4.結(jié)論
計(jì)算資源與對象存儲的分離提供了一個(gè)具有成本效益的解決方案。通過在進(jìn)行分析的節(jié)點(diǎn)上運(yùn)行Alluxio,遠(yuǎn)程對象存儲的主要限制被消除了。Alluxio的設(shè)計(jì)使其成為發(fā)掘計(jì)算和存儲分離架構(gòu)的性能潛力的數(shù)據(jù)分析棧的關(guān)鍵組件。
如果您有興趣學(xué)習(xí)如何使用Alluxio從遠(yuǎn)程對象存儲中及時(shí)獲取數(shù)據(jù)價(jià)值,請下載我們的白皮書,白皮書詳細(xì)說明了如何使用Alluxio和Spark以及Ceph對象存儲集群來配置和使用一個(gè)計(jì)算集群。