熊 文 喻之斌 須成忠
(中國(guó)科學(xué)院深圳先進(jìn)技術(shù)研究院云計(jì)算技術(shù)研究中心 深圳 518055)
大數(shù)據(jù)基準(zhǔn)測(cè)試程序包構(gòu)建方法研究
熊 文 喻之斌 須成忠
(中國(guó)科學(xué)院深圳先進(jìn)技術(shù)研究院云計(jì)算技術(shù)研究中心 深圳 518055)
基準(zhǔn)測(cè)試程序是評(píng)估計(jì)算機(jī)系統(tǒng)的關(guān)鍵測(cè)試工具。然而,大數(shù)據(jù)時(shí)代的到來(lái)使得開(kāi)發(fā)大數(shù)據(jù)系統(tǒng)基準(zhǔn)測(cè)試程序面臨著更加嚴(yán)峻的挑戰(zhàn),當(dāng)前學(xué)術(shù)界和產(chǎn)業(yè)界還不存在得到廣泛認(rèn)可的大數(shù)據(jù)基準(zhǔn)測(cè)試程序包。文章利用實(shí)際的交通大數(shù)據(jù)系統(tǒng)構(gòu)建了一個(gè)基于 Hadoop 平臺(tái)的交通大數(shù)據(jù)基準(zhǔn)測(cè)試程序包 SIAT-Bench。通過(guò)選取多個(gè)層次屬性量化了程序行為特征,采用聚類(lèi)算法分析了不同程序-輸入數(shù)據(jù)集對(duì)的相似性。根據(jù)聚類(lèi)結(jié)果,為 SIATBench 選取了有代表性的程序和輸入數(shù)據(jù)集。實(shí)驗(yàn)結(jié)果表明,SIAT-Bench 在滿(mǎn)足程序行為多樣性的同時(shí)消除了基準(zhǔn)測(cè)試集中的冗余。
大數(shù)據(jù)基準(zhǔn)測(cè)試程序;輸入數(shù)據(jù)集;程序相似性;城市交通系統(tǒng);GPS 軌跡數(shù)據(jù)
1.1 大數(shù)據(jù)的特點(diǎn)
由于云計(jì)算、物聯(lián)網(wǎng)和社交網(wǎng)絡(luò)等新興服務(wù)的出現(xiàn),人類(lèi)社會(huì)的數(shù)據(jù)種類(lèi)和規(guī)模正以前所未有的速度增長(zhǎng)和擴(kuò)大,標(biāo)示著大數(shù)據(jù)時(shí)代正式到來(lái)[1]。一份來(lái)自谷歌的報(bào)告表明:2011 年,全球互聯(lián)網(wǎng)用戶(hù)占全部人口的 32.77%。這意味著全世界 23 億人每天都在產(chǎn)生新的數(shù)據(jù)。2012 年 3月,IBM 公司報(bào)告全世界每天產(chǎn)生的數(shù)據(jù)量達(dá)到了 2.5 EB(1 EB=1000000000 GB)[2]。
大數(shù)據(jù)區(qū)別于其他數(shù)據(jù)的特征主要體現(xiàn)在三點(diǎn):Volume(數(shù)據(jù)量大)、Velocity(速度快)和Varity(種類(lèi)多)[2]。大數(shù)據(jù)的量大指單個(gè)數(shù)據(jù)集達(dá)到了 PB 以上;速度快指數(shù)據(jù)的增長(zhǎng)速度非??欤环N類(lèi)多指數(shù)據(jù)格式繁多,包括結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。非結(jié)構(gòu)化數(shù)據(jù)包括視頻、音頻、日志文件和其他一切不能方便地存儲(chǔ)到傳統(tǒng)關(guān)系型數(shù)據(jù)表中的數(shù)據(jù)。除此以外,一些大數(shù)據(jù)研究組織和社區(qū)認(rèn)為 Value 也是大數(shù)據(jù)的一個(gè)基本特征,指數(shù)據(jù)量大但價(jià)值稀缺。他們認(rèn)為,大數(shù)據(jù)問(wèn)題是真實(shí)的問(wèn)題,一個(gè)好的大數(shù)據(jù)解決方案應(yīng)該能夠給商業(yè)組織和其客戶(hù)創(chuàng)造價(jià)值。
為了更好地管理和分析如此大規(guī)模的數(shù)據(jù)集,工業(yè)界和學(xué)術(shù)界提供了一系列不同的大數(shù)據(jù)解決方案。然而,目前尚未有廣泛認(rèn)同的基準(zhǔn)測(cè)試程序集去評(píng)估這些不同的大數(shù)據(jù)系統(tǒng),并公平比較這些系統(tǒng)的性能差異。上述大數(shù)據(jù)的特征為大數(shù)據(jù)基準(zhǔn)測(cè)試集研發(fā)帶來(lái)了巨大的挑戰(zhàn)[3]。
1.2 大數(shù)據(jù)基準(zhǔn)測(cè)試程序集研發(fā)的難點(diǎn)
構(gòu)建大數(shù)據(jù)基準(zhǔn)測(cè)試程序集主要面臨五大挑戰(zhàn):(1)大數(shù)據(jù)系統(tǒng)的復(fù)雜性使得很難建立一個(gè)理想的基準(zhǔn)測(cè)試模型;(2)大數(shù)據(jù)系統(tǒng)中應(yīng)用領(lǐng)域的多樣性使甄別典型的應(yīng)用程序特征變得更加復(fù)雜;(3)大數(shù)據(jù)系統(tǒng)中的數(shù)據(jù)規(guī)模,為基準(zhǔn)測(cè)試重現(xiàn)程序行為帶來(lái)了巨大的挑戰(zhàn);(4)大數(shù)據(jù)系統(tǒng)的快速演化,要求基準(zhǔn)測(cè)試包的更新能夠跟得上數(shù)據(jù)系統(tǒng)的進(jìn)化[2];(5)沒(méi)有真實(shí)的數(shù)據(jù)作為基準(zhǔn)測(cè)試程序的輸入。這些挑戰(zhàn)使得目前還沒(méi)有一個(gè)得到廣泛認(rèn)可的大數(shù)據(jù)基準(zhǔn)測(cè)試程序集誕生。
1.3 已有的大數(shù)據(jù)基準(zhǔn)測(cè)試程序包
由于大數(shù)據(jù)基準(zhǔn)測(cè)試程序非常重要,許多機(jī)構(gòu)和學(xué)者已經(jīng)開(kāi)始了相關(guān)工作,一些大型互聯(lián)網(wǎng)公司和科研機(jī)構(gòu)發(fā)布了相關(guān)領(lǐng)域的大數(shù)據(jù)基準(zhǔn)測(cè)試程序包。如英特爾公司的 HiBench、雅虎公司的 YCSB 以及 YCSB++和中國(guó)科學(xué)院計(jì)算技術(shù)研究所的 BigDataBench 等。然而,這些基準(zhǔn)測(cè)試程序包都存在這樣或那樣的問(wèn)題。
HiBench 是一個(gè)基于 Hadoop 平臺(tái)的基準(zhǔn)測(cè)試程序包,提供的基準(zhǔn)測(cè)試程序既包括合成的基準(zhǔn)測(cè)試也包括真實(shí)的應(yīng)用程序。它以程序運(yùn)行時(shí)間和系統(tǒng)吞吐率為基準(zhǔn)測(cè)試的評(píng)價(jià)指標(biāo)[4];YCSB 是雅虎公司發(fā)布的一個(gè)關(guān)于云服務(wù)系統(tǒng)的基準(zhǔn)測(cè)試程序包,它提供了一系列的核心基準(zhǔn)測(cè)試程序和負(fù)載產(chǎn)生工具。這些負(fù)載可以有效對(duì)比HBase、Cassandra、Yahoo!’s PNUTS 和 Sharded MySQL 等四種云服務(wù)平臺(tái)的性能特征[5],為基準(zhǔn)測(cè)試受眾者選擇最優(yōu)解決方案提供依據(jù);BigDataBench 是中國(guó)科學(xué)院計(jì)算技術(shù)研究所發(fā)布的一個(gè)基于特定應(yīng)用領(lǐng)域(網(wǎng)絡(luò)搜索引擎)的大數(shù)據(jù)基準(zhǔn)測(cè)試程序包[6]。
以上三個(gè)不同的基準(zhǔn)測(cè)試程序包均較好地解決了各自領(lǐng)域的基準(zhǔn)測(cè)試需求。但其相關(guān)介紹中并沒(méi)有提及如何選擇基準(zhǔn)測(cè)試程序和為特定的基準(zhǔn)測(cè)試程序選擇輸入數(shù)據(jù)集,且沒(méi)有提供真實(shí)的輸入數(shù)據(jù)集。
1.4 大數(shù)據(jù)基準(zhǔn)測(cè)試程序集的要求
和傳統(tǒng)基準(zhǔn)測(cè)試程序包一樣,大數(shù)據(jù)基準(zhǔn)測(cè)試程序包也需要滿(mǎn)足以下六個(gè)方面的要求:
(1)大數(shù)據(jù)基準(zhǔn)測(cè)試應(yīng)該覆蓋多個(gè)應(yīng)用領(lǐng)域或同一領(lǐng)域的多個(gè)方面。當(dāng)前,主要的大數(shù)據(jù)應(yīng)用領(lǐng)域包括科學(xué)研究、健康護(hù)理、市場(chǎng)、金融、情報(bào)、社交媒體和零售等行業(yè),這些不同應(yīng)用領(lǐng)域?qū)Υ髷?shù)據(jù)系統(tǒng)提出了不同的要求[2]。
(2)大數(shù)據(jù)基準(zhǔn)測(cè)試應(yīng)該覆蓋多種數(shù)據(jù)類(lèi)型,如結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。具體來(lái)講應(yīng)該覆蓋:圖數(shù)據(jù)(如來(lái)源于社交網(wǎng)絡(luò)或生物網(wǎng)絡(luò))、流式數(shù)據(jù)、地理信息數(shù)據(jù)和基因數(shù)據(jù)等?;鶞?zhǔn)測(cè)試集的構(gòu)建應(yīng)該從應(yīng)用程序級(jí)別開(kāi)始,在這些不同應(yīng)用和數(shù)據(jù)類(lèi)型間甄別共有的關(guān)鍵數(shù)據(jù)處理程序,如排序等[2]。
(3)大數(shù)據(jù)基準(zhǔn)測(cè)試應(yīng)該采用合成數(shù)據(jù)。在處理進(jìn)行大數(shù)據(jù)基準(zhǔn)測(cè)試時(shí),從互聯(lián)網(wǎng)上下載實(shí)際的大規(guī)模數(shù)據(jù)集代價(jià)非常昂貴,并且以當(dāng)前的網(wǎng)絡(luò)帶寬來(lái)傳輸大數(shù)據(jù)集也不切合實(shí)際,因此,大數(shù)據(jù)基準(zhǔn)測(cè)試包應(yīng)該提供產(chǎn)生合成數(shù)據(jù)的算法和工具[2]。但對(duì)于這一點(diǎn),學(xué)術(shù)界存在很多爭(zhēng)議。有許多學(xué)者認(rèn)為合成數(shù)據(jù)難以代表程序使用真實(shí)數(shù)據(jù)集時(shí)所表現(xiàn)出來(lái)的行為,本文亦贊同這一觀點(diǎn)。
(4)大數(shù)據(jù)基準(zhǔn)測(cè)試應(yīng)該考慮數(shù)據(jù)的隱私和安全。一些大數(shù)據(jù)集中包含了需要保密的信息,例如患者的醫(yī)療記錄、保險(xiǎn)公司的信息和軍事數(shù)據(jù)等。因此,大數(shù)據(jù)基準(zhǔn)測(cè)試使用者要求供應(yīng)商提供保護(hù)隱私安全的大數(shù)據(jù)解決方案。
(5)大數(shù)據(jù)基準(zhǔn)測(cè)試應(yīng)該考慮系統(tǒng)的可靠性。一些大數(shù)據(jù)系統(tǒng)往往需要批量處理任務(wù)和一些數(shù)據(jù)流信息,此時(shí)可靠性顯得尤為重要,這些類(lèi)型的應(yīng)用對(duì)大數(shù)據(jù)解決方案提出了可靠性要求。
(6)大數(shù)據(jù)基準(zhǔn)測(cè)試標(biāo)準(zhǔn)應(yīng)該學(xué)習(xí)已有的成功案例。我們?cè)跇?gòu)建大數(shù)據(jù)基準(zhǔn)測(cè)試應(yīng)該學(xué)習(xí)傳統(tǒng)計(jì)算機(jī)環(huán)境下已經(jīng)被廣泛認(rèn)可的基準(zhǔn)測(cè)試標(biāo)準(zhǔn),如 TPC、SPEC 和 Top500 等。學(xué)習(xí)其構(gòu)建模型的方法和性能評(píng)價(jià)指標(biāo)等,甚至可以在其基礎(chǔ)上直接擴(kuò)展功能,添加大數(shù)據(jù)基準(zhǔn)相關(guān)屬性等方法來(lái)構(gòu)建大數(shù)據(jù)基準(zhǔn)測(cè)試集。
大數(shù)據(jù)基準(zhǔn)測(cè)試程序集的構(gòu)建主要包括兩方面的工作:(1)選取有代表性的基準(zhǔn)測(cè)試程序;(2)為每個(gè)基準(zhǔn)測(cè)試程序選取合適的輸入數(shù)據(jù)集[7]。同時(shí),大數(shù)據(jù)基準(zhǔn)測(cè)試集還應(yīng)該滿(mǎn)足上述的幾個(gè)要求。
為了滿(mǎn)足這兩個(gè)屬性,必須解決以下幾個(gè)問(wèn)題:
(1)甄別有代表性的基準(zhǔn)測(cè)試程序;
(2)分析多個(gè)基準(zhǔn)測(cè)試間程序行為特征的相似性,在保留程序行為多樣性的同時(shí)去冗余;
(3)為特定的基準(zhǔn)測(cè)試程序選取適當(dāng)?shù)妮斎霐?shù)據(jù)集;
(4)為基準(zhǔn)測(cè)試程序選取評(píng)價(jià)指標(biāo)。
本節(jié)將簡(jiǎn)單介紹 SIAT-Bench 的構(gòu)建方法和初步結(jié)論,其詳細(xì)方法、流程和結(jié)果將在后續(xù)的研究成果中陸續(xù)發(fā)布。
2.1 選取典型的應(yīng)用程序
如圖 1 所示,一個(gè)典型的大數(shù)據(jù)系統(tǒng)類(lèi)似于一個(gè)流水線(xiàn),由多個(gè)不同的數(shù)據(jù)處理階段組成。具體的大數(shù)據(jù)處理流水線(xiàn)可能各有不同,但基本組成一般都包括圖 1 所示的五個(gè)階段。
基準(zhǔn)測(cè)試程序包一般包括系統(tǒng)級(jí)的基準(zhǔn)測(cè)試程序和組件級(jí)的基準(zhǔn)測(cè)試程序[2]。一個(gè)系統(tǒng)級(jí)的基準(zhǔn)測(cè)試程序會(huì)圍繞整個(gè)大數(shù)據(jù)系統(tǒng)流水線(xiàn)進(jìn)行。這樣的基準(zhǔn)測(cè)試程序也被稱(chēng)之為端到端的基準(zhǔn)測(cè)試。而一些基準(zhǔn)測(cè)試研究者期待一個(gè)基準(zhǔn)測(cè)試程序能夠測(cè)試整個(gè)大數(shù)據(jù)系統(tǒng),這是不切實(shí)際的。一個(gè)好的系統(tǒng)級(jí)的基準(zhǔn)測(cè)試程序能夠?yàn)槭鼙娬咛峁┖?jiǎn)單直接的方法來(lái)比較不同的大數(shù)據(jù)系統(tǒng)。參與基準(zhǔn)測(cè)試的所有大數(shù)據(jù)系統(tǒng)均使用相同的測(cè)試程序并通過(guò)相同的標(biāo)準(zhǔn)進(jìn)行對(duì)比。系統(tǒng)級(jí)基準(zhǔn)測(cè)試程序的優(yōu)勢(shì)是為系統(tǒng)性能提供一個(gè)簡(jiǎn)單明了的視圖,不需要區(qū)分組件級(jí)別基準(zhǔn)測(cè)試程序在不同階段或過(guò)程中的具體執(zhí)行情況。
組件級(jí)的基準(zhǔn)測(cè)試程序比系統(tǒng)級(jí)的基準(zhǔn)測(cè)試程序更具靈活性,組件級(jí)的基準(zhǔn)測(cè)試程序也相對(duì)較容易定義,并且只測(cè)試系統(tǒng)的某一個(gè)方面,容易部署并且只作用于系統(tǒng)的目標(biāo)組件。
2.2 確定基準(zhǔn)測(cè)試程序和輸入數(shù)據(jù)集
在本節(jié)中,我們通過(guò)對(duì)程序行為特征進(jìn)行相似性分析來(lái)確定基準(zhǔn)測(cè)試程序和其對(duì)應(yīng)的輸入數(shù)據(jù)集。程序行為的相似性分析包括兩步。首先,以一組屬性量化程序行為特征;其次,利用統(tǒng)計(jì)相關(guān)技術(shù)如熵權(quán)法、主成分分析和聚類(lèi)技術(shù)對(duì)程序行為相似性進(jìn)行分析。
為構(gòu)建 SIAT-Bench,我們使用不同層次的特征來(lái)對(duì)程序行為進(jìn)行分析:
(1)應(yīng)用級(jí)的特征,如系統(tǒng)的 IO 吞吐率、map 輸入輸出數(shù)據(jù)量的比率和 map 階段與 reduce階段的運(yùn)行時(shí)間比率;
(2)操作系統(tǒng)級(jí)的特征,如磁盤(pán)讀寫(xiě)的數(shù)據(jù)量、網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量等;
(3)微體系結(jié)構(gòu)級(jí)的特征,如 IPC(Instruction Per Cycle)和緩存缺失率(Cache Miss Ratio)等;
(4)分布式系統(tǒng)級(jí)的特征,如各計(jì)算節(jié)點(diǎn)間的不平衡性。
從以上的層次中,我們選取了 21 個(gè)屬性來(lái)描述程序行為特征。
在實(shí)驗(yàn)過(guò)程中,我們以程序——輸入數(shù)據(jù)集的組合為基本描述對(duì)象(Program-Input Pair),以一個(gè) 21 個(gè)屬性構(gòu)成的向量來(lái)代表一個(gè)描述對(duì)象的行為。因此,這些不同向量可以用來(lái)量化分析不同程序之間的相似程度,使基準(zhǔn)測(cè)試程序集保持程序行為多樣性的同時(shí)消除基準(zhǔn)測(cè)試集中的冗余程序。也可以通過(guò)分析不同輸入數(shù)據(jù)集對(duì)程序行為的影響來(lái)為基準(zhǔn)測(cè)試程序選取典型輸入數(shù)據(jù)集。
數(shù)據(jù)分析的主要流程包括:
(1)對(duì)原始數(shù)據(jù)進(jìn)行熵權(quán)運(yùn)算,對(duì)每個(gè)屬性進(jìn)行權(quán)重排序,熵權(quán)體現(xiàn)評(píng)價(jià)對(duì)象的區(qū)分度。按一定的標(biāo)準(zhǔn)在原始屬性中按權(quán)重選出一個(gè)子集;
(2)對(duì)(1)中的輸出數(shù)據(jù)進(jìn)行正則化處理(均值為 0,方差為 1),消除不同屬性間量綱的差異;
(3)對(duì)(2)中的輸出數(shù)據(jù)進(jìn)行主成分分析(PCA),確定主成分個(gè)數(shù);
(4)用各主成分的新坐標(biāo)表示程序和其輸入數(shù)據(jù)集組合;
(5)計(jì)算表示程序和輸入數(shù)據(jù)集組合向量的歐式距離,進(jìn)行層次聚類(lèi)。
應(yīng)用程序之間程序行為的差異以及輸入數(shù)據(jù)集對(duì)程序行為的影響,可以很直觀地通過(guò)散點(diǎn)圖和層次聚類(lèi)圖表達(dá)。兩個(gè)不同程序與輸入數(shù)據(jù)集組合的程序行為越相似,與之對(duì)應(yīng)的兩個(gè)向量在程序行為空間內(nèi)越接近;反之,如果兩個(gè)點(diǎn)距離較大,說(shuō)明其對(duì)應(yīng)的程序行為差異較大。
因此根據(jù)聚類(lèi)結(jié)果,可以很容易去除基準(zhǔn)測(cè)試程序集中的冗余程序。對(duì)同一基準(zhǔn)測(cè)試程序也很容易根據(jù)聚類(lèi)結(jié)果選出有代表性的輸入數(shù)據(jù)集。
2.3 基準(zhǔn)測(cè)試評(píng)價(jià)指標(biāo)
圖 1 一個(gè)典型的大數(shù)據(jù)系統(tǒng) Pipeline 模型Fig. 1. Pipeline of a typical Big Data system
性能評(píng)價(jià)指標(biāo)是基準(zhǔn)測(cè)試和對(duì)比不同系統(tǒng)的基礎(chǔ)。一般情況下,除了系統(tǒng)的吞吐率(Throughput),性能評(píng)價(jià)指標(biāo)也包含性能(Performance)和成本(Cost)。基準(zhǔn)測(cè)試的受眾者會(huì)根據(jù)性能評(píng)價(jià)指標(biāo)進(jìn)行折中考慮,根據(jù)自身的需求選取性?xún)r(jià)比最高的大數(shù)據(jù)解決方案。
另外,基準(zhǔn)測(cè)試結(jié)果的精確性(Correctness)和結(jié)果表現(xiàn)出的可預(yù)測(cè)性(Predictability)也是性能評(píng)價(jià)指標(biāo)的重要方面。例如,如果測(cè)試結(jié)果表現(xiàn)出很好的可預(yù)測(cè)性,基準(zhǔn)測(cè)試的受眾者可以根據(jù)當(dāng)前規(guī)模環(huán)境下的測(cè)試結(jié)果估算更大規(guī)模的基準(zhǔn)測(cè)試結(jié)果。
本節(jié)以 Terasort 為例,使用 2.2 中描述的方法量化分析輸入數(shù)據(jù)集對(duì)程序行為的影響,同時(shí)確定 Terasort 有代表性的輸入數(shù)據(jù)集。
3.1 實(shí)驗(yàn)平臺(tái)
在實(shí)驗(yàn)中,我們部署了一個(gè)包含 9 個(gè)節(jié)點(diǎn)的Hadoop 集群,其中 8 個(gè)節(jié)點(diǎn)作為存儲(chǔ)和計(jì)算節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)作為管理調(diào)度節(jié)點(diǎn)。全部節(jié)點(diǎn)均采用相同的軟硬件配置并且通過(guò)一個(gè)千兆網(wǎng)卡相鏈接。具體配置如下:
每節(jié)點(diǎn)兩個(gè) Intel Xeon E5620 處理器,3 個(gè) 2 TB 的硬盤(pán),16 GB 的 RAM;操作系統(tǒng)為 Ubuntu 12.04, 內(nèi)核版本是 3.2.0;Hadoop 的版本是1.0.3,每個(gè)節(jié)點(diǎn)配置 8 個(gè) map slot 和 8 個(gè) reduce slot,每個(gè) slot 分配 1 GB 的內(nèi)存;JDK 的版本是1.7.0;Terasort 來(lái)自 HiBench2.2;性能剖析工具為opro fi le-0.98。
我們使用 oprofile 獲取微體系結(jié)構(gòu)級(jí)別的信息,使用 Hadoop 平臺(tái)自帶的監(jiān)控工具獲取 job level 的信息,使用操作系統(tǒng)自帶的命令 iostat 獲取磁盤(pán)和網(wǎng)絡(luò)資源使用信息,采用工具 ntp 進(jìn)行集群時(shí)鐘同步。
為了保證結(jié)果的準(zhǔn)確性,每次實(shí)驗(yàn)前我們都對(duì)系統(tǒng)進(jìn)行了預(yù)熱,并且每組實(shí)驗(yàn)都進(jìn)行 3 次以上,實(shí)驗(yàn)結(jié)果為三次實(shí)驗(yàn)結(jié)果的平均值。
3.2 結(jié)果分析
如圖 2 所示,熵權(quán)值最大的是 map 與 reduce任務(wù)平均耗時(shí)的比值,說(shuō)明 map 任務(wù)平均耗時(shí)的變化程度和 reduce 任務(wù)平均耗時(shí)的變化程度非常不一致。原因如下:一方面,由于在運(yùn)行過(guò)程中reduce 任務(wù)的數(shù)量不變,輸入數(shù)據(jù)集的增大導(dǎo)致了單個(gè) reduce 任務(wù)平均運(yùn)行時(shí)間的增加;另一方面,由于每個(gè) map 任務(wù)處理的數(shù)據(jù)量是固定的,即使 map 任務(wù)需要處理的總數(shù)據(jù)量隨輸入數(shù)據(jù)集的增大而增加了,單個(gè) map 任務(wù)的平均運(yùn)行時(shí)間也基本不變。
圖 2 屬性的熵權(quán)排序Fig. 2. Entropy weight for all metrics
熵權(quán)值次之的是失敗的 map 任務(wù)數(shù)與總 map任務(wù)數(shù)的比值。這是由于輸入數(shù)據(jù)集的增加導(dǎo)致了 map 任務(wù)的總數(shù)增加,但發(fā)生錯(cuò)誤的 map 任務(wù)個(gè)數(shù)基本固定(13~17),并沒(méi)有隨著 map 任務(wù)總數(shù)的增加而增加。值得注意的是,目前的結(jié)論只針對(duì) Terasort 程序。
圖 2 中右側(cè)幾個(gè)量(L)的熵權(quán)值幾乎為零??紤]到熵權(quán)是描述變量所起作用的權(quán)重,說(shuō)明這些變量對(duì)描述程序行為基本不起作用。
主成份分析能去除原始變量中相互關(guān)聯(lián)的變量,對(duì)原始數(shù)據(jù)進(jìn)行降維,使數(shù)據(jù)的特征能夠在平面圖中更直觀的展示。因此,我們對(duì) Terasort的特征數(shù)據(jù)進(jìn)行了主成分分析。結(jié)果如圖 3 所示,前四個(gè)主成份的貢獻(xiàn)率分別是 57.44%、24.37%、8.96% 和4.67%。前三個(gè)主成份其貢獻(xiàn)率已累積達(dá)到 90.77%。
圖 3 主成份的貢獻(xiàn)率Fig. 3. Rate of contribution of the principal component
圖 4 是第一主成份和第二主成份的散點(diǎn)圖。從圖中可以看出有兩個(gè)明顯的點(diǎn)簇(即兩個(gè)橢圓標(biāo)示的區(qū)域)。圖中的每個(gè)點(diǎn)表示一種尺寸的輸入數(shù)據(jù)。輸入數(shù)據(jù)小于 144 G(本文所使用的實(shí)驗(yàn)平臺(tái)為 9 個(gè)節(jié)點(diǎn)的集群,共 144 GB 內(nèi)存)的 Terasort 程序行為可以分為一組,而輸入數(shù)據(jù)大于 144 G 的情況可以分為另一組。如果我們定義數(shù)據(jù)處理能力為 Terasort 在單位時(shí)間內(nèi)能排序的數(shù)據(jù)量,則當(dāng)輸入數(shù)據(jù)集小于 144 GB時(shí),系統(tǒng)的處理能力保持在 0.09 GB/s 左右;但當(dāng)輸入數(shù)據(jù)集大于 144 GB 時(shí),數(shù)據(jù)處理能力急劇降低到 0.03 GB/s 左右。這是因?yàn)檩斎霐?shù)據(jù)集大于內(nèi)存時(shí),Terasort 處理程序受內(nèi)存的限制需要將中間計(jì)算結(jié)果寫(xiě)到磁盤(pán)中,更多的 IO 導(dǎo)致了處理能力的下降。對(duì)于 Terasort 在輸入數(shù)據(jù)集在 20 GB 的異常點(diǎn),Terasort 全部操作都在內(nèi)存中進(jìn)行,磁盤(pán) IO 相對(duì)較少,有著最高的IPC 值。
圖 4 第一主成份和第二主成份散點(diǎn)圖Fig. 4. Scatter diagram of the fi rst and second principal components
如圖 5,該層次聚類(lèi)圖表達(dá)出除輸入數(shù)據(jù)集在 20 GB 和 1000 GB 之外,數(shù)據(jù)集越接近,程序行為越相似,如 400 GB 和 500 GB、200 GB和 300 GB、 80 GB 和 100 GB。按照一定的標(biāo)準(zhǔn)假設(shè)以距離 2.5 為劃分,Terasort 的 11 個(gè)輸入數(shù)據(jù)集可以劃分為三類(lèi),分別是 20 GB、40 GB~500 GB 和 1000 GB。因此,我們推薦使用 20 G、40 G 和 1000 G 作為 Terasort 典型輸入數(shù)集來(lái)進(jìn)行基準(zhǔn)測(cè)試。
圖 5 Terasort 多個(gè)數(shù)據(jù)集層次聚類(lèi)Fig. 5. Hierarchical clusterings of Terasort datasets
圖 6 示意了中國(guó)科學(xué)院深圳先進(jìn)技術(shù)研究院云計(jì)算技術(shù)研究中心為深圳市交通委員會(huì)開(kāi)發(fā)的交通大數(shù)據(jù)處理系統(tǒng)。系統(tǒng)的數(shù)據(jù)來(lái)源于兩部分:(1)深圳市出租車(chē)和公交車(chē)的實(shí)時(shí) GPS 軌跡數(shù)據(jù);(2)深圳市地鐵公交智能卡實(shí)時(shí)交易數(shù)據(jù)。系統(tǒng)部署的應(yīng)用分為兩類(lèi),一類(lèi)是面向交通委員會(huì)的非實(shí)時(shí)數(shù)據(jù)分析應(yīng)用;另一類(lèi)是面向公眾的實(shí)時(shí)查詢(xún)業(yè)務(wù)。
系統(tǒng)由三個(gè)子系統(tǒng)構(gòu)成,分別是:(1)數(shù)據(jù)采集子系統(tǒng)。負(fù)責(zé)接收終端設(shè)備如 GPS 終端和智能卡讀卡器的數(shù)據(jù),驗(yàn)證數(shù)據(jù)的有效性,將數(shù)據(jù)存儲(chǔ)到 HDFS 或 HBase 中;(2)數(shù)據(jù)存儲(chǔ)子系統(tǒng)。這是一個(gè)多層次的混合式云存儲(chǔ)系統(tǒng),由HDFS、HBase 和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù) mysql 構(gòu)成。數(shù)據(jù)在不同階段將被存儲(chǔ)在不同的存儲(chǔ)子系統(tǒng)中;(3)數(shù)據(jù)應(yīng)用子系統(tǒng),在系統(tǒng)中部署的兩類(lèi)對(duì)外提供服務(wù)的應(yīng)用。
系統(tǒng)規(guī)模包含 1500 多萬(wàn)張深圳通卡,30000多輛出租車(chē)和公交車(chē)。平均每天產(chǎn)生 1200 萬(wàn)條深圳通卡交易記錄和 9000 萬(wàn)條 GPS 軌跡數(shù)據(jù)。目前系統(tǒng)保存了近一年以來(lái)的全部數(shù)據(jù),累計(jì)數(shù)據(jù)總量達(dá)到 7 TB 以上。
圖 6 深圳市交通大數(shù)據(jù)系統(tǒng)架構(gòu)Fig. 6. Architecture of a Big Data system for transportation system in Shenzhen
SIAT-Bench 以該實(shí)際系統(tǒng)為基礎(chǔ),目標(biāo)是實(shí)現(xiàn)一套交通大數(shù)據(jù)基準(zhǔn)測(cè)試程序包,使其能夠準(zhǔn)確代表交通領(lǐng)域的典型應(yīng)用如數(shù)據(jù)采集、存儲(chǔ)和索引、分析和挖掘等。利用 SIAT-Bench 能夠準(zhǔn)確評(píng)估交通大數(shù)據(jù)系統(tǒng)的性能和特點(diǎn)。
4.1 SIAT-Bench 特點(diǎn)
SIAT-Bench 中程序的功能特點(diǎn)為:(1)建立交通領(lǐng)域數(shù)據(jù)采集,分析和挖掘的應(yīng)用模型;(2)能準(zhǔn)確刻畫(huà)交通數(shù)據(jù)處理過(guò)程中的典型應(yīng)用場(chǎng)景,準(zhǔn)確評(píng)估同類(lèi)交通大數(shù)據(jù)系統(tǒng)的性能;(3)客觀重現(xiàn)了典型交通數(shù)據(jù)處理程序的行為特征;(4)支持大規(guī)模數(shù)據(jù)集,每天 9000 萬(wàn)條 GPS軌跡數(shù)據(jù)和 1500 萬(wàn)條智能卡刷卡數(shù)據(jù)。
4.2 基準(zhǔn)測(cè)試程序介紹
SIAT-Bench 目前包含 5 個(gè)應(yīng)用程序,均基于Hadoop 平臺(tái)。其中有 2 個(gè)程序使用 Apache pig平臺(tái)實(shí)現(xiàn),3 個(gè)程序由 java 語(yǔ)言實(shí)現(xiàn)。程序具體描述如下:
(1) Mapmatching(GPS 軌跡數(shù)據(jù)地圖匹配)。由于實(shí)際采集的 GPS 軌跡數(shù)據(jù)(經(jīng)度和緯度)與數(shù)字地圖中的道路存在偏差,用Mapmatching來(lái)將出租車(chē)和公交車(chē)的GPS數(shù)據(jù)軌跡和數(shù)字地圖進(jìn)行準(zhǔn)確匹配。它使用 Java 實(shí)現(xiàn),是其他應(yīng)用如交通流量分析的基礎(chǔ)。
(2) Secondarysort(二次排序)。該程序以時(shí)間戳和出租車(chē)車(chē)牌號(hào)為主鍵對(duì)交通數(shù)據(jù)進(jìn)行排序,它是數(shù)據(jù)預(yù)處理的主要步驟,基于 pig 實(shí)現(xiàn)。
(3) Traffic hotregion(出租車(chē)時(shí)空分布分析)。該程序統(tǒng)計(jì)分析深圳市全部出租車(chē)的時(shí)空分布,基于 java 實(shí)現(xiàn)。圖 7 示意了該程序的運(yùn)行結(jié)果,從圖中可以明確看出在某時(shí)刻機(jī)場(chǎng)東站區(qū)域有空的士 85 輛,載客的士 310 輛。
圖 7 深圳市某一時(shí)刻出租車(chē)的分布情況Fig. 7. Taxicab distribution at a certain time in Shenzhen
(4) Sztod(出租車(chē)或人群流動(dòng)統(tǒng)計(jì))。該程序基于 java 來(lái)統(tǒng)計(jì)指定時(shí)間段內(nèi)從區(qū)域 A 到區(qū)域 B的出租車(chē)或人的數(shù)量。
(5) Traffic hotspot(交通熱點(diǎn)分析)。該程序通過(guò) pig 來(lái)統(tǒng)計(jì)市內(nèi)交通熱點(diǎn)如火車(chē)站、購(gòu)物中心和機(jī)場(chǎng)等地點(diǎn)交通流量并進(jìn)行分析。
從實(shí)驗(yàn)分析過(guò)程可以看出,在構(gòu)建大數(shù)據(jù)基準(zhǔn)測(cè)試程序包時(shí),量化大數(shù)據(jù)典型程序行為的方法并對(duì)程序行為的相似性進(jìn)行分析可以有效滿(mǎn)足開(kāi)發(fā)基準(zhǔn)測(cè)試程序包的兩個(gè)要求,在保持程序行為多樣性的同時(shí)消除冗余性。
對(duì)于 Terasort,當(dāng)輸入數(shù)據(jù)集在 200 G~1000 G 變化時(shí),程序行為相似。因此針對(duì) Terasort 只需選定 200 G 為其代表性的輸入數(shù)據(jù)集,既可以準(zhǔn)確評(píng)估 Terasort 在輸入數(shù)據(jù)為 1000 G時(shí)的行為特征,又能準(zhǔn)確推算程序的運(yùn)行時(shí)間,這個(gè)方法節(jié)約了 80% 的系統(tǒng)評(píng)估時(shí)間。
我們將進(jìn)一步完善 SIAT-Bench 的功能,建立準(zhǔn)確的數(shù)據(jù)更新模型,構(gòu)建更加準(zhǔn)確的基準(zhǔn)測(cè)試程序。
[1] Meng XF, Ci X. Big data management: concepts, techniques and challenges [J]. Journal of Computer Research and Development, 2013, 50(1): 146-169.
[2] [EB/OL]. http://www.cse.wusl.edu/~jian/cse567-13/ftp/bigdata/index.html.
[3] Chen YP. We don’t know enough to make a big data benchmark suite-an academia-industry view [C] // Workshop on Big Data Benchmarking, 2012.
[4] Huang SS, Huang J, Dai J, et al. The HiBench benchmark suite: characterization of the MapReduce-based data analysis [C] // 2010 IEEE 26th International Conference on Data Engineering Workshops, 2010: 41-51.
[5] Gao WL, Zhu YQ, Jia Z, et al. Bigdatabench: a Big Data Benchmark Suite from Web Search Engines [Z]. arXiv preprint arXiv:1307.0320, 2013.
[6] Cooper BF, Silberstein A, Tam E, et al. Benchmarking cloud serving systems with YCSB [C] // Proceedings of the 1st ACM Symposium on Cloud Computing, 2010: 143-154.
[7] Eeckhout L, Vandierendonck H, De Bosschere K. Quantifying the impact of input data sets on program behavior and its applications [J]. Journal of Instruction-Level Parallelism, 2003, 5(1): 1-33.
[8] Phansalkar A, Joshi A, John LK. Analysis of redundancy and application balance in the spec cpu2006 benchmark suite [C] // Proceedings of the 34th Annual International Symposium on Computer Architecture, 2007: 412-423.
An Approach to Build a Big Data Benchmark Suite
XIONG Wen YU Zhibin XU Chengzhong
( Cloud Computing Technology Research Center, Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Shenzhen 518055, China )
Benchmarks are important tools to evaluate the performance of a variety of computing systems. However, benchmarks for big data systems are lacking as big data is relatively new and researchers are interested in understanding how big data systems including hardware and software work but do not have data. In this paper, an approach to develop big data benchmarks was devised at first. Then a big data benchmark suite named SIAT-Bench, which contains five representative workloads from Shenzhen urban transportation system, was presented. To this end, the program behavior was characterized and the impact of input data sets was quali fi ed by observing metrics from multiple levels such as microarchitecture, OS and application layer. Then statistical techniques such as Principal Component Analysis (PCA) and Clustering were employed to perform similarity analysis between different workload-input pairs. Finally, we built SIATBench by selecting representative workloads and associated input sets according to the clustering results. Experimental results show that SIAT-Bench properly satis fi es the requirements of a benchmark suite.
big data benchmark; workload-input pairs; similarity; urban traf fi c systems; GPS trajectory data
TP 39
A
2014-4-18
熊文,博士研究生,工程師,研究方向?yàn)榇髷?shù)據(jù)基準(zhǔn)測(cè)試和并行計(jì)算;喻之斌(通訊作者),副研究員,研究方向?yàn)橛?jì)算機(jī)體系結(jié)構(gòu)和性能評(píng)估,E-mail:zb.yu@siat.ac.cn;須成忠,研究員,研究方向?yàn)椴⑿信c分布式系統(tǒng)、互聯(lián)網(wǎng)與云計(jì)算、高性能計(jì)算和移動(dòng)嵌入式系統(tǒng)。