王 萌
(南京曉莊學(xué)院,江蘇 南京 211171)
BDaaS主要是指運用云環(huán)境向外提供大數(shù)據(jù)計算處理相關(guān)服務(wù),用戶在處理大數(shù)據(jù)業(yè)務(wù)期間,只需要將注意力集中在大數(shù)據(jù)業(yè)務(wù)本身處理上即可,云環(huán)境自動收集和整理計算集群、計算框架、算法模型等影響大數(shù)據(jù)計算過程的要素。一旦BDaaS性能不穩(wěn)定,會直接影響數(shù)據(jù)資源的有效利用,降低用戶的使用體驗。因此,在云環(huán)境下,如何科學(xué)地測試和優(yōu)化大數(shù)據(jù)服務(wù)性能是技術(shù)人員必須思考和解決的問題。
云計算作為一種常用的可用性模式,通過利用互聯(lián)網(wǎng),按需付費的方式,對服務(wù)器、存儲、服務(wù)等相關(guān)計算資源進行有效獲取,這些資源通常被集中存儲于特定的資源共享池中,便于其他人員的查看和調(diào)用,這種數(shù)據(jù)獲取和調(diào)用方式具有省力、高效等特點,以部署模式為劃分原則,對云計算進行劃分,使其被劃分為社區(qū)云、混合云、公有云和私有云。以服務(wù)模式為劃分標(biāo)準(zhǔn),可以將云計算劃分為以下組成部分,分別是基礎(chǔ)設(shè)施(Iaas)、系統(tǒng)平臺(Paas)、應(yīng)用軟件(Saas)。
目前,比較常用的大數(shù)據(jù)計算框架主要包含Hadoop框架、Spark框架、Storm框架、GraphLab框架,這些框架主要是為了滿足大數(shù)據(jù)工作負(fù)載管控需求所形成的,這些框架在實際使用中,首先,要將集群構(gòu)建在指定的物理節(jié)點上,然后,根據(jù)物理結(jié)點的處理需求,選用合適的大數(shù)據(jù)計算框架,實現(xiàn)對海量數(shù)據(jù)的分析、篩選和處理,極大地提高了數(shù)據(jù)處理效率和效果 。
BDaaS是“大數(shù)據(jù)即服務(wù)”的簡稱,云環(huán)境上的分析工具、大數(shù)據(jù)存儲等各種類型大數(shù)據(jù)功能都可以被看成是BDaaS。BDaaS主要是指在使用云環(huán)境和服務(wù)的基礎(chǔ)上,利用互聯(lián)網(wǎng),獲得大數(shù)據(jù)處理過程所對應(yīng)的生命周期,然后,對外提供相關(guān)服務(wù)功能[1]。因此,BDaaS 具有過程完整性特點,主要包含以下3個要素,分別是數(shù)據(jù)源、處理框架、工作負(fù)載。
對于大數(shù)據(jù)計算而言,當(dāng)其存儲環(huán)境從物理環(huán)境變?yōu)樵骗h(huán)境后,其資源管理與使用發(fā)生了極大的變化,對BDaaS性能產(chǎn)生極大的影響,這無疑增加了大數(shù)據(jù)計算框架構(gòu)建和處理的復(fù)雜性,為了解決這一問題,需要根據(jù)計算資源的隔離性、存儲資源的多樣性以及網(wǎng)絡(luò)資源的靈活性,利用資源管理接口,對BDaaS環(huán)境中資源進行科學(xué)合理地管理和分析。首先,要利用平臺虛擬化技術(shù),對資源進行管理和隔離處理,從而提高計算資源管理效率和效果。其次,要利用Openstack框架,對多種存儲資源進行收集和整理,并盡可能突出存儲設(shè)備的虛擬化特點,確保用戶能夠享受到更加優(yōu)質(zhì)的數(shù)據(jù)存儲服務(wù)體驗。最后,對資源的管理和使用進行封裝處理,并融入多種BDaaS性能提升策略,向外提供相應(yīng)的數(shù)據(jù)使用接口,提高重要數(shù)據(jù)的利用率。
本文將Openstack設(shè)置為云環(huán)境,將Openstack Sahara設(shè)置為BDaaS 最終解決方案,然后,根據(jù)影響B(tài)DaaS性能因素,設(shè)計出多個優(yōu)化方案,該方案主要涉及了以下3個部分,分別是塊設(shè)備以及Sahara接口優(yōu)化、虛擬化性能瓶頸解決、數(shù)據(jù)源使用策略,通過將這些優(yōu)化方案的思想科學(xué)、合理地應(yīng)用于其他BdaaS解決方案中,可以進一步提高BDaaS性能,從而提高用戶的使用體驗[2]。
現(xiàn)階段,利用Openstack Sahara方案對虛擬集群進行構(gòu)建期間,所用到的塊設(shè)備管理接口過于簡單,不能用于比較復(fù)雜的應(yīng)用場景中,同時,在實際測試中,發(fā)現(xiàn)BDaaS內(nèi)塊設(shè)備出現(xiàn)若干個影響B(tài)DaaS性能的因素,所以,技術(shù)人員要做好對這些接口的全面優(yōu)化和完善。
對于Openstack Sahara而言,其內(nèi)部含有塊設(shè)備,塊設(shè)備主要利用數(shù)據(jù)結(jié)構(gòu),相關(guān)定義的配置,node_group_templates 參數(shù)如表1所示,這些參數(shù)直觀地體現(xiàn)了塊設(shè)備的所有相關(guān)配置項,反映出某類結(jié)點對存儲資源的使用效果產(chǎn)生的影響。同時,通過利用Horizon界面,可以實現(xiàn)對各種存儲資源的整理和劃分[3]。此外,在優(yōu)化和完善塊設(shè)備管理接口期間,要從以下幾個方面入手:(1)將鏡像文件和塊設(shè)備設(shè)置為兩者并存的狀態(tài),與塊設(shè)備相比,確保文件類型具有強大的虛擬化功能,一旦啟動比較高效,塊設(shè)備的讀寫性能會得以大幅度提升。(2)數(shù)據(jù)在實際分流期間,通常會觸發(fā)接口的并發(fā)讀寫功能,這無疑降低了硬盤的讀寫能力,為了避免這一情況的出現(xiàn),需要利用BDaaS大數(shù)據(jù)計算框架,做好對相關(guān)底層信息的配置,確保用戶向獨立的后端中配置相應(yīng)的并發(fā)讀寫目標(biāo)。(3)要將塊設(shè)備與實例進行有效的連接,此外,通過采用簡單直接的連接方式,對本地塊設(shè)備進行科學(xué)化連接,避免出現(xiàn)過多的協(xié)議層。(4)塊設(shè)備不同,所對應(yīng)的塊設(shè)備管理也存在一定的差異[4],因此,做好對多個塊設(shè)備的靈活化配置,是塊設(shè)備的參數(shù)主要包含類型、大小等??傊ㄟ^對塊設(shè)備管理接口進行不斷地修正、優(yōu)化和完善,可以更好地滿足多種復(fù)雜化場景的應(yīng)用需求,為進一步提高塊設(shè)備的管理效率和效果 打下堅實的基礎(chǔ) 。
表1 node_group_templates 參數(shù)
對塊設(shè)備管理接口進行完善后,可以提高塊設(shè)備管理的針對性和有效性,數(shù)據(jù)流中含有相應(yīng)的虛擬化層,對虛擬化層的影響因素較多,因此,技術(shù)人員要在綜合考慮這些影響因素的基礎(chǔ)上,對虛擬化層的性能瓶頸進行科學(xué)測試,經(jīng)過測試后發(fā)現(xiàn),虛擬化層的性能瓶頸問題主要體現(xiàn)在兩個方面:(1)由于計算資源被隔離而導(dǎo)致內(nèi)存使用率過低問題[5]。(2)虛擬化層技術(shù)使用不合理造成的不良影響。通常情況下,一旦出現(xiàn)虛擬化層性能瓶頸問題,往往會對云環(huán)境帶來極大的損耗,為了進一步提高BDaaS性能,現(xiàn)提出以下兩種優(yōu)化方案。
3.2.1 物理環(huán)境HDFS
物理環(huán)境HDFS主要是指從云環(huán)境獲得硬盤讀寫操作,并將其與物理環(huán)境進行有效的結(jié)合,避免對虛擬化層技術(shù)的使用產(chǎn)生不良影響。一旦發(fā)現(xiàn)宿主機上出現(xiàn)大量的讀寫現(xiàn)象,需要利用宿主機,對相關(guān)存儲內(nèi)存進行統(tǒng)一化緩存處理,這樣一來,不僅可以有效地提高內(nèi)存資源利用率,還能使得硬盤讀寫性能得以大幅度提升[6],從而保證BDaaS具有較高的性能。通過對塊設(shè)備管理接口進行科學(xué)改進,以滿足不同物理環(huán)境HDFS使用需求,其物理環(huán)境HDFS方法實施步驟如下:(1)通過對虛擬集群進行構(gòu)建,確保HDFS服務(wù)與宿主機進行有效的結(jié)合,同時,還要在科學(xué)配置Yarn服務(wù)器相關(guān)參數(shù)的基礎(chǔ)上,做好對相同服務(wù)進程管理,避免這些進程實例同時存在于某一個計算節(jié)點上。(2)對數(shù)據(jù)源進行科學(xué)定義,Data Source所支持的數(shù)據(jù)類型主要包含以下兩類,分別是Swift類和HDFS類,但是,Data Source所對應(yīng)的HDFS服務(wù)接口僅僅對password-less類型給予一定的支持[7],無法滿足物理HDFS場景的應(yīng)用需求,技術(shù)人員要利用Data Source對外部物理HDFs進行科學(xué)定義,從而獲得相應(yīng)的數(shù)據(jù)源。(3)對任務(wù)進行執(zhí)行,在以上兩個操作步驟的基礎(chǔ)上,對任務(wù)進行精確定義,并選用合適的虛擬集群,然后,將輸入數(shù)據(jù)源和輸出數(shù)據(jù)源統(tǒng)一設(shè)置為物理環(huán)境HDFS,以實現(xiàn)對相關(guān)任務(wù)的正常、穩(wěn)定地運行。
3.2.2 緩存統(tǒng)一管理
為了從根本上解決虛擬化層性能瓶頸問題,現(xiàn)提出一種行之有效的緩存統(tǒng)一管理方案,該方案在實際運用中,首先,要將BDaaS內(nèi)存管理服務(wù)設(shè)置到服務(wù)器層面上,利用該管理服務(wù)功能,統(tǒng)一化、集中化管控BDaaS所對應(yīng)的緩存內(nèi)存資源,同時,還要利用大數(shù)據(jù)計算框架接口,將各個服務(wù)器進行集成化處理,從而為多種存儲資源的處理提供極大的支持。此外,還要做好對虛擬集群的構(gòu)建,根據(jù)各個計算服務(wù)節(jié)點多問題,對相關(guān)內(nèi)存進行科學(xué)化分配,同時,還要降低對內(nèi)存的使用量,確保存儲服務(wù)具有較高的讀寫性能,最后,還要利用BDaaS數(shù)據(jù)流,對內(nèi)存管理服務(wù)進行緩存處理,從而實現(xiàn)對內(nèi)存管理服務(wù)水平的大幅度提升。
數(shù)據(jù)源使用策略主要是指通過利用指Sahara接口,對典型數(shù)據(jù)源使用模式提供相應(yīng)的支持,該策略在實際運用中,首先,要做好對工作負(fù)載的管控,提高BDaaS的性能,還要根據(jù)CPU密集型處理需求,并使用Swift數(shù)據(jù),做好對BDaaS的管理,避免出現(xiàn)數(shù)據(jù)源被大量輸出現(xiàn)象的發(fā)生。其次,要不斷提高響應(yīng)效率,通過利用備份模式,對數(shù)據(jù)源的寫入順序進行控制,先在本地寫入相應(yīng)的HDFS數(shù)據(jù)源,然后將這些數(shù)據(jù)源拷貝到指定的Swift中,使得數(shù)據(jù)源的拷貝效率得以大幅度提升。最后,要做好對作業(yè)模板的拷貝,對于數(shù)據(jù)源而言,其拷貝方式在實際運用中,需要為其提供比較抽象的支持,同時,還要根據(jù)所設(shè)置的作業(yè)建模,將HDFS服務(wù)與關(guān)系型數(shù)據(jù)庫進行有效的結(jié)合,簡化數(shù)據(jù)源的拷貝流程,此外,還要利用數(shù)據(jù)源拷貝模板,對各種拷貝工具進行集成化處理,確保相關(guān)方案與作業(yè)模板進行充分融合。
綜上所述,在云環(huán)境下,為了進一步提高大數(shù)據(jù)服務(wù)性能,技術(shù)人員要嚴(yán)格按照塊設(shè)備以及Sahara 接口優(yōu)化、虛擬化性能瓶頸解決、數(shù)據(jù)源使用策略3個方面入手,提出BDaaS 性能優(yōu)化方案,該優(yōu)化方案在實際運用中,將測試結(jié)果和應(yīng)用場景進行了有效的結(jié)合,快速找出影響B(tài)DaaS性能相關(guān)因素,從而有效地驗證了該方案的可靠性、有效性和正確性。