国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

大數(shù)據(jù)系統(tǒng)開發(fā)中的構(gòu)件自動(dòng)選型與參數(shù)配置*

2016-09-20 09:00:33邱明明黃向東
計(jì)算機(jī)與生活 2016年9期
關(guān)鍵詞:數(shù)據(jù)系統(tǒng)吞吐量決策樹

鐘 雨,邱明明,黃向東

清華大學(xué) 軟件學(xué)院,北京 100084

大數(shù)據(jù)系統(tǒng)開發(fā)中的構(gòu)件自動(dòng)選型與參數(shù)配置*

鐘雨+,邱明明,黃向東

清華大學(xué) 軟件學(xué)院,北京 100084

大數(shù)據(jù)應(yīng)用系統(tǒng)包含數(shù)據(jù)的采集、存儲(chǔ)、分析、挖掘、可視化等多個(gè)技術(shù)環(huán)節(jié),各個(gè)環(huán)節(jié)都存在多種解決方案,涉及到的各類系統(tǒng)有數(shù)百種之多,且系統(tǒng)配置較為復(fù)雜,這給企業(yè)的大數(shù)據(jù)應(yīng)用系統(tǒng)構(gòu)建帶來了極大的挑戰(zhàn)。針對(duì)大數(shù)據(jù)應(yīng)用系統(tǒng)開發(fā)中構(gòu)件選型的難題,通過建立規(guī)范化的需求指標(biāo),并采用決策樹模型實(shí)現(xiàn)了大數(shù)據(jù)構(gòu)件的自動(dòng)選型。從幾個(gè)主流的分布式存儲(chǔ)系統(tǒng)出發(fā),以Cassandra為例,利用多元回歸擬合的方法針對(duì)硬件參數(shù)建立相應(yīng)的性能模型,將用戶需求作為輸入,利用性能模型進(jìn)行系統(tǒng)硬件參數(shù)配置;通過研究系統(tǒng)原理、架構(gòu)、特點(diǎn)及應(yīng)用場(chǎng)景,構(gòu)建軟件參數(shù)配置知識(shí)庫指導(dǎo)軟件參數(shù)的配置,從而解決了大數(shù)據(jù)系統(tǒng)開發(fā)中的構(gòu)件自動(dòng)選型和參數(shù)配置問題。

大數(shù)據(jù)系統(tǒng);構(gòu)件選型;決策樹模型;參數(shù)配置;性能模型

1 引言

隨著互聯(lián)網(wǎng)的高速發(fā)展和社會(huì)信息化步伐的加快,各行業(yè)的數(shù)據(jù)迅猛發(fā)展,人類已經(jīng)步入大數(shù)據(jù)時(shí)代[1]。美國互聯(lián)網(wǎng)數(shù)據(jù)中心指出,互聯(lián)網(wǎng)上的數(shù)據(jù)每年將增長(zhǎng)50%,每?jī)赡瓯銓⒎环琜2];IBM的研究稱,“整個(gè)人類文明所獲得的全部數(shù)據(jù)中,有90%是過去兩年內(nèi)產(chǎn)生的。而到了2020年,全世界所產(chǎn)生的數(shù)據(jù)規(guī)模將達(dá)到今天的44倍”。大數(shù)據(jù)最顯著的特點(diǎn)是“4V”特征[3]:更大的規(guī)模、更高的多樣性、更快的速度和更低的價(jià)值密度。大數(shù)據(jù)給人們描繪了一個(gè)美好的場(chǎng)景:基于對(duì)大數(shù)據(jù)的處理和分析,人們可以從中挖掘出有價(jià)值的信息,進(jìn)而有效和高效地解決或者緩解本領(lǐng)域面臨的問題。然而,大數(shù)據(jù)帶來的不僅是機(jī)遇,還有一系列的困難和挑戰(zhàn)。大數(shù)據(jù)的復(fù)雜性、動(dòng)態(tài)性、弱關(guān)聯(lián)和價(jià)值稀缺,導(dǎo)致目前尚未形成系統(tǒng)化的有效的大數(shù)據(jù)技術(shù),以滿足不同領(lǐng)域?qū)Υ髷?shù)據(jù)處理的需求。

針對(duì)不同的應(yīng)用需求,如何選擇和組合合適的大數(shù)據(jù)系統(tǒng)往往使用戶困惑。目前市場(chǎng)上各類大數(shù)據(jù)系統(tǒng)呈現(xiàn)了百花齊放的態(tài)勢(shì),例如存儲(chǔ)鍵值對(duì)的大數(shù)據(jù)系統(tǒng)Hbase、Cassandra、Redis、Memcached,存儲(chǔ)文檔數(shù)據(jù)的大數(shù)據(jù)系統(tǒng)MongoDB、CouchDB,面向圖數(shù)據(jù)的大數(shù)據(jù)系統(tǒng)Neo4J、OrientDB,面向批處理的大數(shù)據(jù)系統(tǒng)Hadoop、Hive、Greenplum,面向交互式處理的大數(shù)據(jù)系統(tǒng)Dremel、Drill、Impala,面向?qū)崟r(shí)處理的大數(shù)據(jù)系統(tǒng)Strom、S4、Puma等。這些功能相似的系統(tǒng)構(gòu)件導(dǎo)致了在大數(shù)據(jù)應(yīng)用系統(tǒng)開發(fā)選型時(shí)的困難。而不同應(yīng)用又有不同的側(cè)重點(diǎn):首先需要考慮大數(shù)據(jù)應(yīng)用中數(shù)據(jù)的分析類型是什么,需要實(shí)時(shí)處理還是批處理,這直接影響了是使用類似Hadoop MapReduce生態(tài)圈的大數(shù)據(jù)系統(tǒng),還是類似Spark生態(tài)圈的大數(shù)據(jù)系統(tǒng)。再有,數(shù)據(jù)的處理方法是什么,例如預(yù)測(cè)模型、即席查詢、報(bào)表生成、機(jī)器學(xué)習(xí)等,這直接決定了選用什么樣的大數(shù)據(jù)工具作為整體解決方案的一部分。此外,數(shù)據(jù)的產(chǎn)生頻率和大小、數(shù)據(jù)的類型、數(shù)據(jù)內(nèi)容的格式、數(shù)據(jù)源、數(shù)據(jù)的消費(fèi)者等都需要考慮。

除去大數(shù)據(jù)應(yīng)用開發(fā)中構(gòu)件選型的困難,系統(tǒng)參數(shù)配置同樣是個(gè)棘手的問題。因?yàn)楝F(xiàn)有的大數(shù)據(jù)系統(tǒng)不僅種類繁多,而且配置較為復(fù)雜。首先是硬件參數(shù)的配置,對(duì)于用戶給定的需求,應(yīng)該配置硬件資源的數(shù)目,如服務(wù)器個(gè)數(shù)、CPU、內(nèi)存、硬盤和網(wǎng)絡(luò)等。對(duì)于用戶來說,既要保證大數(shù)據(jù)系統(tǒng)各方面需求得到滿足,又要保證在硬件上的花費(fèi)盡可能少。此外,以Cassandra[4]為例,除去硬件選項(xiàng),還有70余項(xiàng)可選的軟件配置參數(shù),而且各個(gè)參數(shù)之間相互影響??梢园l(fā)現(xiàn),參數(shù)配置對(duì)系統(tǒng)性能的影響具有致命的效果。更糟糕的是,在大數(shù)據(jù)系統(tǒng)中,任何一個(gè)配置參數(shù)的調(diào)整往往不能立即看到效果,而是當(dāng)數(shù)據(jù)量達(dá)到一定規(guī)模的時(shí)候,其作用才能凸現(xiàn)出來。

云計(jì)算是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。云計(jì)算平臺(tái)可以為用戶提供廉價(jià)的大數(shù)據(jù)解決方案,簡(jiǎn)化了用戶開發(fā)大數(shù)據(jù)應(yīng)用的復(fù)雜度。本文研究了基于云計(jì)算技術(shù)的大數(shù)據(jù)應(yīng)用系統(tǒng)開發(fā)運(yùn)行一體化平臺(tái)。該平臺(tái)涵蓋了大數(shù)據(jù)應(yīng)用的全生命周期,簡(jiǎn)化了用戶根據(jù)業(yè)務(wù)需求構(gòu)建面向特定領(lǐng)域的大數(shù)據(jù)系統(tǒng)的過程,并且能夠自動(dòng)管理系統(tǒng)運(yùn)行,為大數(shù)據(jù)應(yīng)用系統(tǒng)開發(fā)提供軟件工程方法、工具與平臺(tái)。本文論述的內(nèi)容是一體化平臺(tái)研究工作中重要的一部分,即系統(tǒng)選型與參數(shù)配置。

本文通過調(diào)研、歸納與分析主流的大數(shù)據(jù)應(yīng)用場(chǎng)景和需求以及包括Cassandra、HDFS、HBase、Map-Reduce、Spark、HIVE、Mahout和MLBase在內(nèi)的主流大數(shù)據(jù)系統(tǒng),建立了大數(shù)據(jù)構(gòu)件資源庫系統(tǒng)。該系統(tǒng)負(fù)責(zé)根據(jù)用戶對(duì)大數(shù)據(jù)存儲(chǔ)、計(jì)算和分析的需求自動(dòng)選擇合適的大數(shù)據(jù)存儲(chǔ)系統(tǒng)、大數(shù)據(jù)計(jì)算系統(tǒng)、大數(shù)據(jù)分析系統(tǒng),并且能夠根據(jù)性能模型進(jìn)行系統(tǒng)參數(shù)自動(dòng)配置和優(yōu)化。資源庫中不僅囊括了大量現(xiàn)有的開源大數(shù)據(jù)系統(tǒng),更重要的是保存并不斷學(xué)習(xí)這些系統(tǒng)的應(yīng)用知識(shí),使其能夠較為自動(dòng)地為上層提供大數(shù)據(jù)系統(tǒng)的選型和參數(shù)配置的支持。該系統(tǒng)以O(shè)penStack為支撐,通過OpenStack創(chuàng)建各種類型的Linux虛擬機(jī),同時(shí)配置虛擬機(jī)的硬件和軟件參數(shù),自動(dòng)啟動(dòng)虛擬機(jī),進(jìn)而在虛擬機(jī)上部署各種大數(shù)據(jù)構(gòu)件,調(diào)整大數(shù)據(jù)構(gòu)件參數(shù),啟動(dòng)或停止大數(shù)據(jù)構(gòu)件服務(wù)等。該系統(tǒng)根據(jù)用戶的應(yīng)用需求進(jìn)行大數(shù)據(jù)構(gòu)件的自動(dòng)選型和參數(shù)配置,并生成集群的各種信息返回給用戶。

本文通過建立規(guī)范化的需求指標(biāo),基于決策樹模型實(shí)現(xiàn)了大數(shù)據(jù)構(gòu)件的自動(dòng)選型。從幾個(gè)主流的分布式存儲(chǔ)系統(tǒng)出發(fā),以Cassandra為例,通過研究其系統(tǒng)原理、架構(gòu)與特點(diǎn),進(jìn)行實(shí)驗(yàn)和測(cè)試,建立相應(yīng)的性能模型。利用性能模型對(duì)應(yīng)用需求進(jìn)行分析,幫助用戶進(jìn)行系統(tǒng)選型、參數(shù)配置與調(diào)優(yōu),從而解決大數(shù)據(jù)應(yīng)用中的選型和參數(shù)配置困難的問題。

本文組織結(jié)構(gòu)如下:第2章介紹國內(nèi)外的相關(guān)工作;第3章介紹大數(shù)據(jù)開發(fā)中的構(gòu)件自動(dòng)選型;第4章以Cassandra為例介紹大數(shù)據(jù)系統(tǒng)的參數(shù)配置問題;第5章給出基于Cassandra的參數(shù)配置實(shí)驗(yàn)結(jié)果與分析;第6章總結(jié)全文。

2 相關(guān)工作

2.1系統(tǒng)對(duì)比與自動(dòng)選型

在大數(shù)據(jù)系統(tǒng)的構(gòu)件自動(dòng)選型方面,國內(nèi)國際的研究幾乎是一片空白。不過,很多學(xué)者已經(jīng)對(duì)大數(shù)據(jù)應(yīng)用中不同的數(shù)據(jù)庫和數(shù)據(jù)存儲(chǔ)系統(tǒng)從功能、特點(diǎn)、性能等方面進(jìn)行了對(duì)比。Cattell對(duì)主流的NoSQL系統(tǒng)進(jìn)行了分析[5],對(duì)比了這些系統(tǒng)中數(shù)據(jù)模型、一致性機(jī)制、存儲(chǔ)機(jī)制,保證持久性、可用性、查詢支持以及其他方面的不同點(diǎn)。Skerjanc和Li等人對(duì)眾多SQL和NoSQL數(shù)據(jù)庫的性能進(jìn)行了對(duì)比,得出了幾乎所有的NoSQL數(shù)據(jù)庫在鍵值對(duì)存儲(chǔ)的應(yīng)用場(chǎng)景下都比SQL數(shù)據(jù)庫性能更好的結(jié)論[6-7]。Florian 對(duì)Voldemort、Redis、Memcached、HBase、Cassandra、SimpleDB、MongoDB等眾多NoSQL數(shù)據(jù)庫在擴(kuò)展性、多節(jié)點(diǎn)操作等方面進(jìn)行了對(duì)比分析[8]。根據(jù)這些研究,可以知道不同的數(shù)據(jù)庫有各自的優(yōu)缺點(diǎn),適用于不同的應(yīng)用需求。因此,在大數(shù)據(jù)系統(tǒng)的構(gòu)件自動(dòng)選型中,應(yīng)明確系統(tǒng)需求,確定數(shù)據(jù)的產(chǎn)生和使用方式,這樣大數(shù)據(jù)系統(tǒng)的選型方案才能正確。

2.2性能模型

Herodotou對(duì)Hadoop的性能進(jìn)行了建模[9],描述了一個(gè)MapReduce任務(wù)在Map、Reduce的每個(gè)流程中的數(shù)據(jù)流向和性能代價(jià),該模型可以被用作估計(jì)MapReduce任務(wù)的執(zhí)行性能以及找到任務(wù)運(yùn)行的最優(yōu)配置。Rabl等人研究了在一定的讀寫負(fù)載下的幾種鍵值存儲(chǔ)系統(tǒng)(HBase、Cassandra、Voldemort、Redis等)的性能,并給出了實(shí)驗(yàn)結(jié)果[10]。范劍波等人對(duì)分布式存儲(chǔ)系統(tǒng)的性能進(jìn)行了研究,建立了服務(wù)器性能的數(shù)據(jù)分布模式,有效地減少了客戶請(qǐng)求的平均服務(wù)時(shí)間[11]。趙鐵柱對(duì)分布式文件系統(tǒng)進(jìn)行了性能建模,提出了一種能夠預(yù)測(cè)Lustre和HDFS性能的預(yù)測(cè)模型,并對(duì)HDFS寫操作進(jìn)行了改進(jìn),實(shí)驗(yàn)結(jié)果表明,模型預(yù)測(cè)的誤差在可接受的范圍內(nèi)[12]。陸承濤等人根據(jù)I/O負(fù)載的運(yùn)行時(shí)特征,借助多元回歸分析理論,在線提取系統(tǒng)的性能模型[13]。

2.3參數(shù)配置與性能優(yōu)化

計(jì)算機(jī)系統(tǒng)性能調(diào)優(yōu)問題因其重要的應(yīng)用價(jià)值而一直為學(xué)術(shù)界和工業(yè)界所關(guān)注,目前已取得大量的研究成果,這些工作主要分布于數(shù)據(jù)庫系統(tǒng)、Web服務(wù)等領(lǐng)域。長(zhǎng)期以來,數(shù)據(jù)庫系統(tǒng)都要求數(shù)據(jù)庫管理員(database administrator,DBA)和應(yīng)用開發(fā)人員做大量的人工調(diào)節(jié),使得數(shù)據(jù)庫的性能保持良好。而這些可調(diào)參數(shù)數(shù)目眾多,性能原則難以理解,使得參數(shù)調(diào)整和性能優(yōu)化工作成本較高。為了降低DBA的工作負(fù)擔(dān),減少DBMS(database management system)的維護(hù)費(fèi)用,數(shù)據(jù)庫自調(diào)優(yōu)技術(shù)成為研究的熱點(diǎn)之一。然而,數(shù)據(jù)庫系統(tǒng)因其規(guī)模龐大,結(jié)構(gòu)復(fù)雜,從而對(duì)性能調(diào)優(yōu)的研究難以求全責(zé)備,現(xiàn)有的調(diào)優(yōu)方法主要著重于對(duì)某個(gè)子問題的研究。

Chaudhuri等人設(shè)計(jì)了一個(gè)索引分析實(shí)用工具,該程序用來執(zhí)行系統(tǒng)性能的what-if分析[14]。Debnath等人通過P&B(Placket&Burman)統(tǒng)計(jì)方法解決了不同參數(shù)對(duì)性能影響程度的排序問題[15]。Sulivan等人采用影響圖模型,依據(jù)模型對(duì)BerkeleyDB系統(tǒng)的4個(gè)參數(shù)進(jìn)行調(diào)整,但隨著系統(tǒng)參數(shù)個(gè)數(shù)的增加,該方法的效率將變得較為低下[16]。Duan等人設(shè)計(jì)了一個(gè)數(shù)據(jù)庫配置參數(shù)的自動(dòng)性能調(diào)優(yōu)工具iTuned,實(shí)現(xiàn)了調(diào)優(yōu)實(shí)驗(yàn)的高效率、調(diào)優(yōu)過程的低開銷以及跨平臺(tái)的可移植性[17]。Oracle11g數(shù)據(jù)庫系統(tǒng)主要采用瓶頸消除和主動(dòng)監(jiān)視兩種方法來調(diào)優(yōu)性能[18],前者的重點(diǎn)在于消除資源瓶頸,而后者則采用比較方法,周期性地監(jiān)視系統(tǒng)的運(yùn)行時(shí)數(shù)據(jù),并與歷史行為數(shù)據(jù)進(jìn)行比較,找出性能問題的根源,從而優(yōu)化系統(tǒng)的性能。

來自澳大利亞墨爾本大學(xué)的Buyya教授領(lǐng)導(dǎo)團(tuán)隊(duì)開發(fā)了CloudSim[19]云計(jì)算仿真軟件,其是在離散事件模擬包SimJava(http://www.dcs.ed.ac.uk/home/ hase/simjava/)上開發(fā)的函數(shù)庫。該工具允許開發(fā)人員在單個(gè)物理計(jì)算節(jié)點(diǎn)上模擬大規(guī)模云計(jì)算基礎(chǔ)設(shè)施。通過該平臺(tái),可以對(duì)參數(shù)配置進(jìn)行建模,測(cè)試不同配置下的系統(tǒng)性能,從而得到滿足應(yīng)用需求和服務(wù)質(zhì)量所需的云計(jì)算資源,方便用戶之后將他們的云計(jì)算服務(wù)部署到真實(shí)的云計(jì)算環(huán)境中,如亞馬遜的EC2和微軟的Azure。

3 構(gòu)件自動(dòng)選型

此外,一個(gè)完整的大數(shù)據(jù)應(yīng)用往往需要多個(gè)大數(shù)據(jù)系統(tǒng)的配合,比如使用NoSQL數(shù)據(jù)庫作為分布式存儲(chǔ),使用Spark進(jìn)行計(jì)算分析,使用Storm進(jìn)行流程分發(fā),使用Scribe收集系統(tǒng)日志等。因此不僅需要提供某一業(yè)務(wù)模塊所匹配的大數(shù)據(jù)系統(tǒng)軟件,還需要進(jìn)行大數(shù)據(jù)系統(tǒng)軟件棧的選擇,使得整個(gè)業(yè)務(wù)流程中多個(gè)系統(tǒng)構(gòu)件形成一個(gè)連通的有機(jī)整體。

大數(shù)據(jù)系統(tǒng)軟件棧則分為大數(shù)據(jù)存儲(chǔ)系統(tǒng)、大數(shù)據(jù)計(jì)算系統(tǒng)、大數(shù)據(jù)分析系統(tǒng)3個(gè)層次。本文通過總結(jié)多種應(yīng)用場(chǎng)景的實(shí)踐經(jīng)驗(yàn),將大數(shù)據(jù)應(yīng)用的需求進(jìn)行了詳細(xì)的劃分,從需求類型、數(shù)據(jù)類型、業(yè)務(wù)流程、性能指標(biāo)等多個(gè)方面提取了17個(gè)需求指標(biāo),其中與選型相關(guān)的有10個(gè),如表1所述。

Table 1 Big data application requirement norm 表1 大數(shù)據(jù)應(yīng)用需求指標(biāo)

本文采用決策樹模型實(shí)現(xiàn)對(duì)大數(shù)據(jù)構(gòu)件的自動(dòng)選型。對(duì)于存儲(chǔ)、計(jì)算、分析3種需求,分別構(gòu)建決策樹。以8種大數(shù)據(jù)系統(tǒng)為例,3個(gè)決策樹的輸入?yún)?shù)從10個(gè)選型需求參數(shù)中挑選相關(guān)的參數(shù),輸出則為選型結(jié)果,見表2。

存儲(chǔ)層選型決策樹的一部分如圖1所示。

Table 2 Input and output of three-level decision tree表2 三層決策樹的輸入和輸出

Fig.1 Decision tree圖1 決策樹示意圖

本文采用C5.0算法構(gòu)建決策樹。構(gòu)建決策樹時(shí),如算法1所示,使用一組先驗(yàn)知識(shí),包括不同輸入下的選型結(jié)果。系統(tǒng)內(nèi)置了初始的知識(shí),用以構(gòu)建決策樹;系統(tǒng)也支持用戶增加新的知識(shí),當(dāng)用戶對(duì)某一次的選型結(jié)果進(jìn)行修改時(shí),資源庫會(huì)收到相應(yīng)的反饋,一條新的知識(shí)將會(huì)添加到已有的知識(shí)中,并重建決策樹,見算法2。因此,通過不斷保存和學(xué)習(xí)新的大數(shù)據(jù)應(yīng)用系統(tǒng),獲取其業(yè)務(wù)流程和應(yīng)用模式下對(duì)應(yīng)需求的選型數(shù)據(jù)來訓(xùn)練和優(yōu)化決策樹,以提供更好的構(gòu)件自動(dòng)選型方案。

算法1 構(gòu)建決策樹算法

算法2 更新決策樹算法

根據(jù)用戶對(duì)大數(shù)據(jù)存儲(chǔ)、計(jì)算和分析的需求,自動(dòng)選擇合適的大數(shù)據(jù)存儲(chǔ)系統(tǒng)、大數(shù)據(jù)計(jì)算系統(tǒng)、大數(shù)據(jù)分析系統(tǒng)。如果用戶選擇的是存儲(chǔ)需求,則輸出相應(yīng)的存儲(chǔ)系統(tǒng),則同時(shí)需要存儲(chǔ)層構(gòu)件和計(jì)算層構(gòu)件,應(yīng)同時(shí)輸出存儲(chǔ)和計(jì)算系統(tǒng)的選型;同理,若用戶選擇的是分析需求,則同時(shí)輸出存儲(chǔ)、計(jì)算和分析系統(tǒng)的選型。算法3給出了構(gòu)件選型流程的偽代碼。

算法3 構(gòu)件選型流程

4 參數(shù)配置

在大數(shù)據(jù)應(yīng)用系統(tǒng)中,參數(shù)配置對(duì)系統(tǒng)性能的影響較大。大數(shù)據(jù)系統(tǒng)的參數(shù)包括硬件參數(shù)和軟件參數(shù)。在進(jìn)行參數(shù)配置時(shí),除了要滿足系統(tǒng)性能需求,還需要考慮系統(tǒng)資源的限制和經(jīng)濟(jì)上的因素。

本文實(shí)現(xiàn)了一種新的大數(shù)據(jù)系統(tǒng)的性能模型,能夠進(jìn)行系統(tǒng)參數(shù)自動(dòng)配置和運(yùn)行前優(yōu)化。對(duì)每個(gè)大數(shù)據(jù)系統(tǒng)構(gòu)件,通過網(wǎng)格搜索法分析、測(cè)試不同參數(shù)配置下大數(shù)據(jù)系統(tǒng)的性能指標(biāo),結(jié)合不同參數(shù)配置的成本因素、硬件資源,通過多元回歸、主成分分析等方法,建立性能指標(biāo)和系統(tǒng)參數(shù)的相關(guān)性模型,并能根據(jù)該模型計(jì)算出用戶需求情況下最優(yōu)的參數(shù)配置。

在本文分析的17個(gè)需求指標(biāo)中,與參數(shù)配置相關(guān)的需求有7個(gè),分別是數(shù)據(jù)量、數(shù)據(jù)日增量、讀吞吐量、寫吞吐量、讀延遲、寫延遲和最大客戶端并發(fā)數(shù)

4.1硬件參數(shù)配置與性能模型

在系統(tǒng)參數(shù)配置中,硬件配置是決定大數(shù)據(jù)系統(tǒng)性能最根本、最主要的因素,受限于用戶的基礎(chǔ)條件和投資成本。本文以硬件配置為主,同時(shí)綜合各種因素構(gòu)建了一種適合參數(shù)配置的性能模型。

本文選取了節(jié)點(diǎn)數(shù)(記為N)、CPU核心數(shù)(記為C)、內(nèi)存大?。ㄓ洖镸)、磁盤大小(記為D)共4個(gè)硬件參數(shù)。考慮到本平臺(tái)選用OpenStack作為底層系統(tǒng),而OpenStack無法配置位于多塊物理磁盤上的多個(gè)虛擬磁盤,無法配置網(wǎng)絡(luò)帶寬,因此忽略磁盤個(gè)數(shù)、網(wǎng)絡(luò)帶寬因素。硬件參數(shù)的取值范圍如表3所示。

Table 3 Range of hardware parameters表3 硬件參數(shù)的取值范圍

本文以底層的大數(shù)據(jù)存儲(chǔ)系統(tǒng)作為用戶需求的基礎(chǔ)進(jìn)行參數(shù)初始配置,若存在計(jì)算和分析構(gòu)件,則分析其性能是否滿足要求,并調(diào)整配置。

在上文提及的參數(shù)配置相關(guān)的7個(gè)需求中,數(shù)據(jù)量與數(shù)據(jù)日增量是“容量型”指標(biāo),主要與磁盤大小相關(guān),且系統(tǒng)存儲(chǔ)的數(shù)據(jù)量越大,需要的磁盤空間也就更多。而讀吞吐量(ReadThroughput)、寫吞吐量(WriteThroughput)、讀延遲(ReadLatency)、寫延遲(WriteLatency)、客戶端并發(fā)數(shù)(Concurrent)5個(gè)指標(biāo)是“性能型”指標(biāo),主要由節(jié)點(diǎn)數(shù)、CPU核心數(shù)和內(nèi)存大小3個(gè)因素決定。為得到它們之間的關(guān)系,本文對(duì)這5個(gè)性能指標(biāo)與這3個(gè)硬件參數(shù)進(jìn)行建模,通過使用多元回歸的方法建立起5個(gè)性能模型,刻畫參數(shù)配置與系統(tǒng)性能的關(guān)系。

式(1)表示讀吞吐量的性能模型;式(2)表示寫吞吐量的性能模型;式(3)表示讀延遲的性能模型;式(4)表示寫延遲的性能模型;式(5)表示客戶端并發(fā)數(shù)的性能模型。

根據(jù)這些性能模型逆推,即通過求解性能模型方程,可以得到滿足給定性能需求的最小參數(shù)配置。對(duì)于讀吞吐量,即在給定的ReadThroughput值下,求解大于或等于該值時(shí)的硬件配置,如式(6)所示。寫吞吐量與之類似,如式(7)所示。對(duì)于讀延遲,則是在給定的需求值ReadLatency下,求解小于或等于該值的硬件配置,如式(8)所示。寫延遲與讀延遲一樣,如式(9)所示。對(duì)于客戶端并發(fā)數(shù),則需要求解并發(fā)數(shù)大于或等于給定需求值的配置,如式(10)所示。

除了要滿足性能要求,還需要最經(jīng)濟(jì)的解決方案,即價(jià)格最小化:

本文參考阿里云和亞馬遜AWS等主流的云平臺(tái),使用如下的價(jià)格計(jì)算公式:

性能模型的正確性直接決定了最后結(jié)果的正確性,而多元回歸的類型直接決定模型效果,本文目前采用的回歸方法還有待進(jìn)一步提升與優(yōu)化。

4.2Cassandra性能模型實(shí)例

本文以Cassandra的寫吞吐量性能建模為例,進(jìn)行詳細(xì)分析,其余4個(gè)性能指標(biāo)采用類似的方法。在忽略其他次要因素的情況下,考慮一個(gè)服務(wù)器的內(nèi)存大小為M(單位GB),CPU核心數(shù)為C,設(shè)部署在該服務(wù)器上的Cassandra寫吞吐量(單位B/s)為:

因?yàn)镃assandra是一個(gè)分布式、P2P架構(gòu)、高可擴(kuò)展的數(shù)據(jù)存儲(chǔ)系統(tǒng),具有良好的水平可擴(kuò)展性。根據(jù)水平可擴(kuò)展性,具有N個(gè)機(jī)器的Cassandra集群的寫吞吐量為:

對(duì)于 f(C,M),考慮到內(nèi)存和CPU之間會(huì)互相影響,因此C和M存在相關(guān)性。對(duì) f(C,M)進(jìn)行線性估計(jì),設(shè):

對(duì) f(N)進(jìn)行二次估計(jì),設(shè):

在第5章中,設(shè)計(jì)實(shí)驗(yàn)測(cè)試在不同的C、M、N 下Tw的值,進(jìn)而通過回歸的方法求出待定系數(shù)a1、a2、a3、a4、b1、b2、b3。若發(fā)現(xiàn)實(shí)驗(yàn)結(jié)果與分析得到的模型不符合,則需要對(duì)模型進(jìn)行修正。

4.3軟件參數(shù)配置

系統(tǒng)軟件參數(shù)配置是指大數(shù)據(jù)系統(tǒng)運(yùn)行時(shí)的參數(shù)配置,通常通過系統(tǒng)的配置文件進(jìn)行修改。系統(tǒng)軟件參數(shù)配置需要豐富的大數(shù)據(jù)系統(tǒng)專家知識(shí),因此本文采用構(gòu)建專家?guī)斓姆椒▉順?gòu)建軟件參數(shù)配置知識(shí)庫。下面以Cassandra的參數(shù)commitlog_sync為例進(jìn)行分析與說明。

Cassandra是基于LSM(log-structure merge)樹模型來進(jìn)行內(nèi)存數(shù)據(jù)的持久化管理,其最突出的特征是預(yù)寫式日志(write-ahead log,WAL,在Cassandra被稱為CommitLog即數(shù)據(jù)寫到內(nèi)存后,必須寫到CommitLog中,才能夠返回客戶端寫操作成功,但不需要馬上寫到數(shù)據(jù)文件中。這種模型使得其寫吞吐量較關(guān)系數(shù)據(jù)庫大大提升。寫CommitLog時(shí),采用了文件緩沖區(qū)機(jī)制,先將數(shù)據(jù)寫到CommitLog內(nèi)存緩沖區(qū)中,在合適的時(shí)機(jī)同步到硬盤上。Cassandra提供了兩種同步機(jī)制,batch(批量)和periodic(周期)。兩者都會(huì)每隔一段時(shí)間同步CommitLog到磁盤,但不同的是,Batch模式在完成同步之前,所有的寫操作任務(wù)暫時(shí)不返回,直到一個(gè)batch的CommitLog全部刷到磁盤上時(shí),再統(tǒng)一返回;而periodic模式則會(huì)在CommitLog寫到緩沖區(qū)之后立即返回客戶端,期間有可能CommitLog并沒有完全寫到磁盤上,如果系統(tǒng)發(fā)生故障,可能會(huì)丟失數(shù)據(jù)。

從上面的機(jī)制可以看出,periodic模式的吞吐量更高,但一致性較差,可能發(fā)生數(shù)據(jù)丟失的情況;相反,batch模式吞吐量相比略低,但會(huì)保證數(shù)據(jù)的持久化。因此,設(shè)置如下參數(shù)配置規(guī)則:

當(dāng)數(shù)據(jù)一致性為強(qiáng)一致性時(shí),設(shè)置commitlog_sync=batch,優(yōu)先級(jí)為5,即必須滿足;

當(dāng)數(shù)據(jù)一致性為最終一致性,設(shè)置commitlog_sync=periodic,優(yōu)先級(jí)為4。

相似地,本文總結(jié)了大約100條參數(shù)配置規(guī)則,每條規(guī)則有不同的優(yōu)先級(jí)(1~5),若兩條規(guī)則相互沖突,以優(yōu)先級(jí)高者為準(zhǔn)。以Cassandra為例,表4是一部分參數(shù)配置規(guī)則。依據(jù)參數(shù)配置規(guī)則知識(shí)庫,就可以根據(jù)用戶需求和硬件參數(shù)計(jì)算最優(yōu)配置。

Table 4 Part of parameter configuration rules表4 部分參數(shù)配置規(guī)則

5 實(shí)驗(yàn)和分析

本文使用的實(shí)驗(yàn)環(huán)境為3臺(tái)服務(wù)器組成的Open-Stack虛擬機(jī)環(huán)境。每臺(tái)服務(wù)器的硬件配置為Intel Xeon E5-2609 CPU、64 GB內(nèi)存、512 MB緩存的RAID5卡,服務(wù)器之間通過千兆以太網(wǎng)連接,并通過NTP(network time protocol)同步了系統(tǒng)時(shí)間。虛擬機(jī)安裝的操作系統(tǒng)為Red Hat Enterprise Server 6.1。本文使用Cassandra作為參數(shù)配置實(shí)驗(yàn)的對(duì)象??蛻舳耸褂肶ahoo的基準(zhǔn)測(cè)試平臺(tái)YCSB(https://github. com/brianfrankcooper/YCSB)模擬高并行的讀寫訪問??蛻舳说挠布渲靡约安僮飨到y(tǒng)和服務(wù)器節(jié)點(diǎn)相同,均位于OpenStack平臺(tái)上。

實(shí)驗(yàn)中,通過不斷提高客戶端線程數(shù)目,測(cè)試最高能達(dá)到的性能。測(cè)試采用每行10列,每列平均10個(gè)字符的數(shù)據(jù)。多節(jié)點(diǎn)環(huán)境下,采用單副本策略以測(cè)試其能夠擴(kuò)展的最大性能。在此基礎(chǔ)上,考慮多副本對(duì)性能的影響。

針對(duì)上述5個(gè)性能指標(biāo),分別對(duì)3個(gè)參數(shù)共約60組不同組合進(jìn)行實(shí)驗(yàn)。

本文以Cassandra的寫吞吐量性能為例,如圖2所示,橫坐標(biāo)為節(jié)點(diǎn)個(gè)數(shù),縱坐標(biāo)為吞吐量,一共3組結(jié)果,分別是1c2g(1核心CPU,2 GB內(nèi)存,下同)、2c4g、4c8g。實(shí)驗(yàn)結(jié)果表明,當(dāng)固定CPU核心數(shù)和內(nèi)存大小兩個(gè)配置,其寫吞吐量隨著節(jié)點(diǎn)個(gè)數(shù)的增加而增加。

Fig.2 Cassandra write throughput result when fixing CPU core number and memory size圖2 固定CPU核心數(shù)和內(nèi)存大小的Cassandra寫吞吐量實(shí)驗(yàn)結(jié)果

圖3為固定節(jié)點(diǎn)數(shù)為1的Cassandra寫吞吐量實(shí)驗(yàn)結(jié)果。當(dāng)固定節(jié)點(diǎn)數(shù)為1時(shí),吞吐量隨著分配核心數(shù)和內(nèi)存的增加而增加。

Fig.3 Cassandra write throughput result when setting node number to 1圖3 固定節(jié)點(diǎn)數(shù)為1的Cassandra寫吞吐量實(shí)驗(yàn)結(jié)果

從實(shí)驗(yàn)結(jié)果可以看出,Cassandra的寫吞吐量具有水平可擴(kuò)展的特性,寫吞吐量隨節(jié)點(diǎn)數(shù)線性增加,證明了Tw(N,C,M)=f(C,M)×f(N)的正確性。而當(dāng)固定節(jié)點(diǎn)數(shù)和CPU數(shù)目時(shí),寫吞吐量并不與內(nèi)存大小M線性相關(guān)而是與其對(duì)數(shù)lbM線性相關(guān),因此對(duì)模型進(jìn)行修正:

從而

根據(jù)所有的測(cè)試數(shù)據(jù),對(duì)上面的關(guān)系式進(jìn)行多元回歸求解求出待定系數(shù)a1、a2、a3、a4、b1、b2、b3。得出如下的性能模型公式:

其中,N為服務(wù)器節(jié)點(diǎn)個(gè)數(shù);C為CPU核心數(shù);M為內(nèi)存大小。

對(duì)回歸得到的模型的預(yù)測(cè)值和真實(shí)值進(jìn)行對(duì)比,評(píng)估其誤差。表5是Cassandra寫吞吐量實(shí)驗(yàn)的部分結(jié)果,Tw是實(shí)驗(yàn)值,T′w是模型的估計(jì)值。

Table 5 Part of Cassandra write throughput results表5 部分Cassandra寫吞吐量結(jié)果

模型預(yù)測(cè)的平均誤差為2%,說明該模型能夠準(zhǔn)確地表示Cassandra寫吞吐量隨節(jié)點(diǎn)數(shù)、CPU核心數(shù)和內(nèi)存的變化情況,保證了硬件參數(shù)配置的正確性和可靠性。

6 結(jié)束語

本文針對(duì)大數(shù)據(jù)應(yīng)用系統(tǒng)開發(fā)中構(gòu)件選型的難題,通過建立規(guī)范化的需求指標(biāo),基于決策樹模型、計(jì)算、分析3種需求,分別構(gòu)建決策樹,實(shí)現(xiàn)了大數(shù)據(jù)構(gòu)件的自動(dòng)選型。本文從幾個(gè)主流的分布式存儲(chǔ)系統(tǒng)出發(fā),以Cassandra為例進(jìn)行實(shí)驗(yàn)和測(cè)試,利用多元回歸擬合的方法針對(duì)硬件參數(shù)建立相應(yīng)的性能模型,將用戶需求作為輸入,利用性能模型進(jìn)行系統(tǒng)硬件參數(shù)配置;通過研究其系統(tǒng)原理、架構(gòu)、特點(diǎn)及應(yīng)用場(chǎng)景,構(gòu)建軟件參數(shù)配置知識(shí)庫指導(dǎo)軟件參數(shù)的配置,從而解決了大數(shù)據(jù)應(yīng)用中的選型、部署和參數(shù)配置困難的問題。

在今后的研究中,重點(diǎn)對(duì)更多的大數(shù)據(jù)系統(tǒng)進(jìn)行實(shí)驗(yàn)和分析,進(jìn)一步完善本平臺(tái)的大數(shù)據(jù)構(gòu)件。此外,還需要對(duì)求解性能模型的回歸方法進(jìn)行改進(jìn)和優(yōu)化,以期得到更好的性能模型。

References:

[1]Mayer-Sch?nberger V,Cukier K.Big data[M].Hangzhou: Zhejiang People?s Publishing House,2013.

[2]Gantz J,Reinsel D.The digital universe in 2020:big data, bigger digital shadows,and biggest growth in the far east [EB/OL].(2012)[2015-07-18].http://www.emc.com/leadership/digital-universe/2012iview/index.htm.

[3]Barwick H.The“four Vs”of big data:implementing information infrastructure symposium[EB/OL].(2011-08-05)[2015-07-18].http://www.computerworld.com.au/article/396198/iiis_ four_vs_big_data/.

[4]Lakshman A,Malik P.Cassandra:a decentralized structured storage system[J].ACM SIGOPS Operating Systems Review,2010,44(2):35-40.

[5]Cattell R.Scalable SQL and NoSQL data stores[J].ACM SIGMOD Record,2011,39(4):12-27.

[6]?kerjanc N.Performance comparison between NoSQL and relational database[D].Univerza v Ljubljani,2012.

[7]Li Yishan,Manoharan S.A performance comparison of SQL and NoSQL databases[C]//Proceedings of the 2013 IEEE Pacific Rim Conference on Communications,Computers and Signal Processing,Victoria,Canada,Aug 27-29,2013. Piscataway,USA:IEEE,2013:15-19.

[8]Eckerstorfer F.Performance of NoSQL databases[EB/OL].(2011-11-19)[2015-07-18].http://storage.braincrafted.com/ Eckerstorfer2011NoSQLPerformance.pdf.

[9]Herodotou H.Hadoop performance models,CS-2011-05[R]. Computer Science Department,Duke University.

[10]Rabl T,Gómez-Villamor S,Sadoghi M,et al.Solving big data challenges for enterprise application performance management[J].Proceedings of the VLDB Endowment,2012,5 (12):1724-1735.

[11]Fan Jianbo,Guo Jiankang.Establishment and application of performance model on distributed storage system[J].Computer Engineering andApplications,2001,37(13):89-91.

[12]Zhao Tiezhu.Research on performance modeling and application of distributed file system[D].Guangzhou:South China University of Technology,2011.

[13]Lu Chengtao,Feng Dan,Wang Fang,et al.Profile-based model extraction of storage systems and model applications[J]. Journal of Chinese Computer Systems,2010,31(12):2467-2471.

[14]Chaudhuri S,Narasayya V.AutoAdmin“what-if”index analysis utility[J].ACM SIGMOD Record,1998,27(2): 367-378.

[15]Debnath B K,Lilja D J,Mokbel M F.SARD:a statistical approach for ranking database tuning parameters[C]//Proceedings of the 24th IEEE International Conference on Data Engineering Workshop,Cancun,Mexico,Apr 7-12,2008. Piscataway,USA:IEEE,2008:11-18.

[16]Sulivan D G,Seltzer M I,Pfefer A.Using probabilistic reasoning to automate software tuning[C]//Proceedings of the 2004 Joint International Conference on Measurement and Modeling of Computer Systems,New York,USA,Jun 12-16,2004.New York,USA:ACM,2004:404-405.

[17]Duan Songyun,Thummala V,Babu S.Tuning database configuration parameters with iTuned[J].Proceedings of the VLDB Endowment,2009,2(1):1246-1257.

[18]Oracle Corporation.Oracle database 11g release 2 performance tuning tips&techniques[Z].2012.

[19]Calheiros R N,Ranjan R,Beloglazov A,et al.CloudSim:a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms[J].Software Practice and Experience,2011,41(1): 23-50.

附中文參考文獻(xiàn):

[1]邁爾-舍恩伯格,庫克耶.大數(shù)據(jù)時(shí)代[M].盛楊燕,周濤, 譯.杭州:浙江人民出版社,2013.

[11]范劍波,郭建康.分布式存儲(chǔ)系統(tǒng)性能模型的建立與應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2001,37(13):89-91.

[12]趙鐵柱.分布式文件系統(tǒng)性能建模及應(yīng)用研究[D].廣州:華南理工大學(xué),2011.

[13]陸承濤,馮丹,王芳,等.一種存儲(chǔ)系統(tǒng)性能模型的提取方法及模型應(yīng)用[J].小型微型計(jì)算機(jī)系統(tǒng),2010,31(12): 2467-2471.

ZHONG Yu was born in 1991.He is an M.S.candidate at School of Software,Tsinghua University.His research interests include big data systems and NoSQL systems,etc.

鐘雨(1991—),男,山東高密人,清華大學(xué)軟件學(xué)院碩士研究生,主要研究領(lǐng)域?yàn)榇髷?shù)據(jù)系統(tǒng),NoSQL系統(tǒng)等。

QIU Mingming was born in 1993.He is an M.S.candidate at School of Software,Tsinghua University.His research interests include big data systems and machine learning,etc.

邱明明(1993—),男,江西九江人,清華大學(xué)軟件學(xué)院碩士研究生,主要研究領(lǐng)域?yàn)榇髷?shù)據(jù)系統(tǒng),機(jī)器學(xué)習(xí)等。

HUANG Xiangdong was born in 1989.He is a Ph.D.candidate at School of Software,Tsinghua University.His research interests include cloud data management,unstructured data management and distributed database system,etc.

黃向東(1989—),男,河南鄭州人,清華大學(xué)軟件學(xué)院博士研究生,主要研究領(lǐng)域?yàn)樵茢?shù)據(jù)管理,非結(jié)構(gòu)化數(shù)據(jù)管理,分布式數(shù)據(jù)庫系統(tǒng)等。

Automatic Component Selection and Parameter Configuration in Development of Big Data System?

ZHONG Yu+,QIU Mingming,HUANG Xiangdong
School of Software,Tsinghua University,Beijing 100084,China
+Corresponding author:E-mail:zhongyu8@gmail.com

ZHONG Yu,QIU Mingming,HUANG Xiangdong.Automatic component selection and parameter configuration in development of big data system.Journal of Frontiers of Computer Science and Technology,2016,10 (9):1211-1220.

Big data applications include data collection,storage,analysis,mining,visualization,and other technical aspects.Every aspect has a variety of solutions,involves several hundred application systems and the system configuration is complicated,which has brought great challenges for a company to construct big data applications.To solve the problem of component selection in the development of application system,this paper establishes standardized requirement norms and achieves automatic component selection by using the components selection decision tree.This paper embarks from the several mainstream distributed storage systems,takes Cassandra as an example,conducts experiments and uses multiple regression method to calculate the performance model for hardware parameters.Then,this paper uses the performance model to help user configure hardware parameters under the input of user’s requirements. Finally,this paper studies the system’s principle,structure and characteristics and constructs a knowledge base of software parameters configuration to help configure software parameters.In these ways the problem of component selection and parameter configuration in the development of big data system can be solved.

2015-09,Accepted 2015-12.

big data system;component selection;decision tree model;parameter configuration;performance model

*The Big Data Science and Technology Special Fund of the Tsinghua National Laboratory of Information Science and Technology(清華大學(xué)信息科學(xué)與技術(shù)國家實(shí)驗(yàn)室大數(shù)據(jù)科學(xué)與技術(shù)專項(xiàng)).

CNKI網(wǎng)絡(luò)優(yōu)先出版:2015-12-15,http://www.cnki.net/kcms/detail/11.5602.TP.20151215.1037.002.html

A

TP391

猜你喜歡
數(shù)據(jù)系統(tǒng)吞吐量決策樹
一種針對(duì)不均衡數(shù)據(jù)集的SVM決策樹算法
基于Spark的高速收費(fèi)站大數(shù)據(jù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于計(jì)算機(jī)軟件開發(fā)技術(shù)的物聯(lián)網(wǎng)數(shù)據(jù)系統(tǒng)
決策樹和隨機(jī)森林方法在管理決策中的應(yīng)用
電子制作(2018年16期)2018-09-26 03:27:06
非均勻采樣數(shù)據(jù)系統(tǒng)的新型模型描述方法
2016年10月長(zhǎng)三角地區(qū)主要港口吞吐量
集裝箱化(2016年11期)2017-03-29 16:15:48
2016年11月長(zhǎng)三角地區(qū)主要港口吞吐量
集裝箱化(2016年12期)2017-03-20 08:32:27
基于決策樹的出租車乘客出行目的識(shí)別
基于肺癌CT的決策樹模型在肺癌診斷中的應(yīng)用
2014年1月長(zhǎng)三角地區(qū)主要港口吞吐量
集裝箱化(2014年2期)2014-03-15 19:00:33
乐亭县| 贡嘎县| 稷山县| 偏关县| 民勤县| 新化县| 南汇区| 达州市| 论坛| 温宿县| 壶关县| 高要市| 德钦县| 正定县| 葫芦岛市| 曲阜市| 芷江| 怀来县| 黄陵县| 开远市| 西吉县| 丹棱县| 扶绥县| 登封市| 衡山县| 利辛县| 景东| 田阳县| 余江县| 光泽县| 彝良县| 嘉祥县| 历史| 黎川县| 祁连县| 昌乐县| 蒲江县| 西城区| 高碑店市| 南宫市| 油尖旺区|