亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        鐘 雨,邱明明,黃向東

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

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

        鐘雨+,邱明明,黃向東

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

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

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

        1 引言

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

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

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

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

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

        本文通過建立規(guī)范化的需求指標,基于決策樹模型實現(xiàn)了大數(shù)據(jù)構(gòu)件的自動選型。從幾個主流的分布式存儲系統(tǒng)出發(fā),以Cassandra為例,通過研究其系統(tǒng)原理、架構(gòu)與特點,進行實驗和測試,建立相應(yīng)的性能模型。利用性能模型對應(yīng)用需求進行分析,幫助用戶進行系統(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)件自動選型;第4章以Cassandra為例介紹大數(shù)據(jù)系統(tǒng)的參數(shù)配置問題;第5章給出基于Cassandra的參數(shù)配置實驗結(jié)果與分析;第6章總結(jié)全文。

        2 相關(guān)工作

        2.1系統(tǒng)對比與自動選型

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

        2.2性能模型

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

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

        計算機系統(tǒng)性能調(diào)優(yōu)問題因其重要的應(yīng)用價值而一直為學(xué)術(shù)界和工業(yè)界所關(guān)注,目前已取得大量的研究成果,這些工作主要分布于數(shù)據(jù)庫系統(tǒng)、Web服務(wù)等領(lǐ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的工作負擔(dān),減少DBMS(database management system)的維護費用,數(shù)據(jù)庫自調(diào)優(yōu)技術(shù)成為研究的熱點之一。然而,數(shù)據(jù)庫系統(tǒng)因其規(guī)模龐大,結(jié)構(gòu)復(fù)雜,從而對性能調(diào)優(yōu)的研究難以求全責(zé)備,現(xiàn)有的調(diào)優(yōu)方法主要著重于對某個子問題的研究。

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

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

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

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

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

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

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

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

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

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

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

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

        算法2 更新決策樹算法

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

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

        4 參數(shù)配置

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

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

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

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

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

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

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

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

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

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

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

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

        本文參考阿里云和亞馬遜AWS等主流的云平臺,使用如下的價格計算公式:

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

        4.2Cassandra性能模型實例

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

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

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

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

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

        4.3軟件參數(shù)配置

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

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

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

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

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

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

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

        5 實驗和分析

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

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

        針對上述5個性能指標,分別對3個參數(shù)共約60組不同組合進行實驗。

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

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

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

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

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

        從而

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

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

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

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

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

        6 結(jié)束語

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

        在今后的研究中,重點對更多的大數(shù)據(jù)系統(tǒng)進行實驗和分析,進一步完善本平臺的大數(shù)據(jù)構(gòu)件。此外,還需要對求解性能模型的回歸方法進行改進和優(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.

        附中文參考文獻:

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

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

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

        [13]陸承濤,馮丹,王芳,等.一種存儲系統(tǒng)性能模型的提取方法及模型應(yīng)用[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)域為大數(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)域為大數(shù)據(jù)系統(tǒng),機器學(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)域為云數(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ù)據(jù)科學(xué)與技術(shù)專項).

        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)吞吐量決策樹
        一種針對不均衡數(shù)據(jù)集的SVM決策樹算法
        基于Spark的高速收費站大數(shù)據(jù)系統(tǒng)的設(shè)計與實現(xiàn)
        基于計算機軟件開發(fā)技術(shù)的物聯(lián)網(wǎng)數(shù)據(jù)系統(tǒng)
        決策樹和隨機森林方法在管理決策中的應(yīng)用
        電子制作(2018年16期)2018-09-26 03:27:06
        非均勻采樣數(shù)據(jù)系統(tǒng)的新型模型描述方法
        2016年10月長三角地區(qū)主要港口吞吐量
        集裝箱化(2016年11期)2017-03-29 16:15:48
        2016年11月長三角地區(qū)主要港口吞吐量
        集裝箱化(2016年12期)2017-03-20 08:32:27
        基于決策樹的出租車乘客出行目的識別
        基于肺癌CT的決策樹模型在肺癌診斷中的應(yīng)用
        2014年1月長三角地區(qū)主要港口吞吐量
        集裝箱化(2014年2期)2014-03-15 19:00:33
        久久精品国产亚洲不av麻豆 | 亚洲综合色丁香婷婷六月图片| 岛国熟女一区二区三区| 久久中文字幕久久久久91| 国产精品久久国产精品久久| 国产精品天堂在线观看 | 在线a人片免费观看国产| 最近亚洲精品中文字幕| 国产精品国产自产拍高清| 国产成人综合久久久久久| 亚洲日韩欧美一区、二区| 久久露脸国产精品| 在线精品国内视频秒播| 亚洲图片第二页| 国产精品一区二区黄色片| 人妖啪啪综合av一区| 精品国产第一国产综合精品| 国产成人无码a区在线观看视频 | 国偷自产av一区二区三区| 国产偷2018在线观看午夜| 日本高清免费播放一区二区| 国产三级精品三级在线专区2| 亚洲av综合色区无码一区| 免费国产黄网站在线观看| 亚洲精品高清你懂的| 少妇被日到高潮的视频| 国产精品久久婷婷六月丁香| 亚洲精品1区2区在线观看| 中文字幕精品久久久久人妻红杏ⅰ| 狠狠爱无码一区二区三区| 国产免费的视频一区二区| 精品一区中文字幕在线观看 | 中文字幕一区二区三区日日骚| 美女脱了内裤张开腿让男人桶网站| 国产精品亚韩精品无码a在线| 一级片久久| 免费看黄在线永久观看| 澳门蜜桃av成人av| 欧美人与禽z0zo牲伦交| 在线国产小视频| 亚洲中文字幕不卡无码|