近年來,隨著大數(shù)據(jù)系統(tǒng)的快速發(fā)展,各式各樣的開源基準(zhǔn)測試集被開發(fā)出來,以評測和分析大數(shù)據(jù)系統(tǒng)并促進(jìn)其技術(shù)改進(jìn)。然而,迄今為止,還沒有就這些基準(zhǔn)測試集進(jìn)行系統(tǒng)調(diào)研。因此,本文對當(dāng)前最前沿的開源大數(shù)據(jù)基準(zhǔn)測試集進(jìn)行全面總結(jié),闡述其歷史、現(xiàn)狀并展望下一步研究方向。首先,我們從大數(shù)據(jù)系統(tǒng)的角度對大數(shù)據(jù)基準(zhǔn)測試集進(jìn)行了定義和分類。隨后,我們回顧了基準(zhǔn)測試技術(shù)的三個重要方面——工作負(fù)載生成技術(shù)、輸入數(shù)據(jù)生成技術(shù)和系統(tǒng)評估指標(biāo)。最后,論文從這三個方面對現(xiàn)有基準(zhǔn)測試集進(jìn)行歸類,并重點描述其中具有代表性的測試集,進(jìn)而討論未來研究方向,以推動該領(lǐng)域工作的持續(xù)發(fā)展。
介 紹
近年來,大數(shù)據(jù)在應(yīng)用領(lǐng)域獲得了廣泛和毋庸置疑的成功,這些領(lǐng)域包括互聯(lián)網(wǎng)服務(wù)(如搜索引擎、社交網(wǎng)絡(luò)和電子商務(wù))、多媒體(如視頻、照片和音樂流)以及科學(xué)研究(如生物信息學(xué)、天文學(xué)和高能物理)等。在大數(shù)據(jù)時代,不斷增長的數(shù)據(jù)量、快速處理數(shù)據(jù)(數(shù)據(jù)速度)的需求以及數(shù)據(jù)類型、結(jié)構(gòu)和來源的多樣性給我們帶來了全新的挑戰(zhàn),傳統(tǒng)的數(shù)據(jù)管理系統(tǒng)已經(jīng)捉襟見肘。高效數(shù)據(jù)存儲和處理的需求促使多種新的大數(shù)據(jù)系統(tǒng)被開發(fā)出來,這些系統(tǒng)通常被分為三個陣營,如圖1所示:(1)Hadoop相關(guān)系統(tǒng) (涵蓋高級語言和結(jié)構(gòu)化查詢語言(SQL))已成為多數(shù)大數(shù)據(jù)應(yīng)用的實際解決方案;(2)數(shù)據(jù)庫管理系統(tǒng)(DBMSs)和NoSQL數(shù)據(jù)庫在線上事務(wù)及分析中被廣泛使用;(3)在大數(shù)據(jù)領(lǐng)域,人們對于圖數(shù)據(jù)、流數(shù)據(jù)和復(fù)雜科學(xué)數(shù)據(jù)的特殊處理需要產(chǎn)生了對專用系統(tǒng)的需求。
圖1. 大數(shù)據(jù)系統(tǒng)分類與總述
在此背景下,對大數(shù)據(jù)系統(tǒng)進(jìn)行基準(zhǔn)測試已經(jīng)成為許多領(lǐng)域研究開發(fā)工作的最重要驅(qū)動力之一,這些領(lǐng)域包括數(shù)據(jù)管理系統(tǒng)、硬件架構(gòu)、操作系統(tǒng)和編程系統(tǒng)。首先,它有助于評估現(xiàn)有大數(shù)據(jù)系統(tǒng)的進(jìn)展,從而推動其工程開發(fā)并且指導(dǎo)其性能提高。其次,它有助于評估新興大數(shù)據(jù)應(yīng)用的需求,從而促進(jìn)大數(shù)據(jù)技術(shù)的進(jìn)步。盡管大數(shù)據(jù)系統(tǒng)的基準(zhǔn)評測已經(jīng)吸引了學(xué)術(shù)界和產(chǎn)業(yè)界人士的廣泛關(guān)注,但是到目前為止還沒有對當(dāng)今最先進(jìn)的大數(shù)據(jù)基準(zhǔn)測試集展開的全面評估。因此,基于作者自身積累的經(jīng)驗(創(chuàng)建BigDataBench項目以及召開多屆大數(shù)據(jù)基準(zhǔn)、性能優(yōu)化和新興硬件的國際研討會(BPOE)),本文試圖盡填補(bǔ)這一空白。該調(diào)查總結(jié)歸納了當(dāng)前流行的開源基準(zhǔn)測試集。圖2顯示了這些基準(zhǔn)測試集的詞云圖,其中詞的大小和流行度成比例。
圖2. 開源大數(shù)據(jù)基準(zhǔn)的標(biāo)簽云
表1. 最新開源大數(shù)據(jù)基準(zhǔn)測試集總覽表
為了面向大數(shù)據(jù)社區(qū)中的廣泛受眾,本文首先提供了大數(shù)據(jù)基準(zhǔn)測試集的概述和分類,如表1所示。第2章將詳細(xì)介紹理解大數(shù)據(jù)系統(tǒng)和基準(zhǔn)測試的必要概念。在接下來的章節(jié)中,我們將就三個重要方面(工作負(fù)載生成技術(shù)、輸入數(shù)據(jù)生成技術(shù)和系統(tǒng)度量指標(biāo))對現(xiàn)有大數(shù)據(jù)基準(zhǔn)測試集進(jìn)行回顧。同時,我們將分別根據(jù)基準(zhǔn)測試集在這三個方面的不同分為不同的類別,并描述每一類別中具有代表性的基準(zhǔn)測試集。
首先,對于一個基準(zhǔn)測試研究來說,工作負(fù)載中的操作實現(xiàn)了大多數(shù)應(yīng)用的數(shù)據(jù)處理邏輯。因此相關(guān)的、可移植的和可伸縮的工作負(fù)載的生成,決定了基準(zhǔn)測試集的代表性和可用性。鑒于此,第3章將從兩個互補(bǔ)的方面來回顧現(xiàn)有基準(zhǔn)測試集的工作負(fù)載生成技術(shù):工作負(fù)載實現(xiàn)技術(shù)和運行時負(fù)載執(zhí)行模式。
其次,數(shù)據(jù)量大、產(chǎn)生速度快和數(shù)據(jù)種類多是大數(shù)據(jù)最重要的特性,因而產(chǎn)生具有3V特性的工作負(fù)載輸入數(shù)據(jù)的同時保證數(shù)據(jù)的真實性和可靠性是大數(shù)據(jù)基準(zhǔn)測試集成功的先決條件。第4章通過把現(xiàn)有的輸入數(shù)據(jù)生成技術(shù)分為四類:現(xiàn)有數(shù)據(jù)集、基于指定分布的數(shù)據(jù)集生成器、基于真實數(shù)據(jù)的數(shù)據(jù)集生成器以及混合數(shù)據(jù)集生成器。
最后,第5章總結(jié)了評估系統(tǒng)性能、價格和能耗的指標(biāo),并介紹了未來大數(shù)據(jù)基準(zhǔn)測試中應(yīng)該考慮的性能參數(shù)。
我們注意到,除了以上三個方面之外,關(guān)于大數(shù)據(jù)系統(tǒng)的基準(zhǔn)測試還有其他重要的方面,包括大數(shù)據(jù)基準(zhǔn)測試集的設(shè)計和實現(xiàn)方法;如何對基準(zhǔn)測試集進(jìn)行更新和擴(kuò)展以及它們?nèi)绾斡糜趯Υ髷?shù)據(jù)系統(tǒng)和應(yīng)用的性能分析。所有這些方面都超出了本文的范圍,我們推薦了一些最近的參考書目以便讀者進(jìn)一步閱讀:面向Hadoop的基準(zhǔn)測試集、數(shù)據(jù)庫基準(zhǔn)測試集和專用圖處理系統(tǒng)的基準(zhǔn)測試集;還有一些主流的基準(zhǔn)測試集,如Yahoo! Cloud Serving Benchmark(YCSB)、BigBench、HiBench、CloudSuite 和BigDataBench 。
大數(shù)據(jù)基準(zhǔn)測試集概述
在本節(jié)中,我們首先在2.1節(jié)中介紹大數(shù)據(jù)基準(zhǔn)測試集的類別。然后,我們將在2.2節(jié)、2.3節(jié)和2.4節(jié)中分別介紹Hadoop 相關(guān)系統(tǒng)、數(shù)據(jù)庫和專用系統(tǒng)的基準(zhǔn)測試集的發(fā)展。
2.1大數(shù)據(jù)基準(zhǔn)測試集分類
現(xiàn)有基準(zhǔn)測試集通常可以根據(jù)基準(zhǔn)測試范圍分為三類:
微基準(zhǔn)測試集。這類基準(zhǔn)測試集被用于評估單個系統(tǒng)組件或特定系統(tǒng)行為(或代碼的功能)。首先,系統(tǒng)組件既包括CPU或網(wǎng)絡(luò)設(shè)備之類的硬件,又包括Hadoop分布式文件系統(tǒng)(HDFS)之類的軟件,如NNBench和TestDFSIO用于測試HDFS中的NameNode和網(wǎng)絡(luò)組件的性能。其次,Hadoop中特定系統(tǒng)行為的例子是grep和sort。
端到端基準(zhǔn)測試集。這類基準(zhǔn)測試集的目的是使用典型應(yīng)用場景評估整個系統(tǒng),每個場景都對應(yīng)一個工作負(fù)載的集合。例如,TPC-E-58提供一組線上事務(wù)處理(OLTP)查詢,以模擬交易和客戶帳戶管理等事務(wù)。
基準(zhǔn)測試集套件是不同的微基準(zhǔn)測試集或端到端基準(zhǔn)測試集的組合,這些套件的目標(biāo)是提供全面的基準(zhǔn)測試解決方案。例如,HcBench和MRBS等基準(zhǔn)測試套件提供了Hadoop相關(guān)系統(tǒng)的工作負(fù)載,HiBench、CloudSuite和BigDataBench則提供了多種大數(shù)據(jù)系統(tǒng)的工作負(fù)載。
在接下來的小節(jié)中,我們將分別介紹大數(shù)據(jù)系統(tǒng)的三大陣營以及為它們設(shè)計的基準(zhǔn)測試集。圖3展示了大數(shù)據(jù)基準(zhǔn)測試集十年來的發(fā)展,并根據(jù)所評估的系統(tǒng)將它們分為四組:(1)從2006年Hadoop發(fā)布開始,Hadoop相關(guān)系統(tǒng)的各種基準(zhǔn)測試集被開發(fā)出來;(2) 自2009年以來,繼承自TPC的為數(shù)據(jù)庫開發(fā)的基準(zhǔn)測試集不斷發(fā)展;(3)專用系統(tǒng)的基準(zhǔn)測試是一個不成熟卻快速發(fā)展的領(lǐng)域,因此相關(guān)基準(zhǔn)測試集從2013年才開始出現(xiàn);(4) 大數(shù)據(jù)系統(tǒng)的三大陣營均可用HiBench、CloudSuite和BigDataBench進(jìn)行基準(zhǔn)測試。表1總結(jié)了這些基準(zhǔn)測試集,并根據(jù)它們的發(fā)布日期把相同類型的按升序排列。注意,大數(shù)據(jù)基準(zhǔn)測試是一個活躍的研究領(lǐng)域,許多基準(zhǔn)測試集在最初發(fā)布之后仍在發(fā)展(特別是HiBench、CloudSuite和BigDataBench),因此本文將重點討論它們的最新版本。
圖3. 大數(shù)據(jù)基準(zhǔn)測試集發(fā)布時間軸
2.2 Hadoop相關(guān)系統(tǒng)
2.2.1 系統(tǒng)
Hadoop的HDFS和MapReduce。受Google文件系統(tǒng)(GFS)和Google MapReduce的啟發(fā),開源社區(qū)開發(fā)了Hadoop HDFS和MapReduce。隨著以Hadoop為中心的系統(tǒng)在工業(yè)界取得了巨大的成功,各種各樣在Hadoop上開發(fā)的系統(tǒng)出現(xiàn)了,我們將討論其中兩類主要的系統(tǒng)——高級語言和SQL。注意,盡管還有其他的大數(shù)據(jù)系統(tǒng)作為Hadoop的替代品,比如Apache Flink,但這一小節(jié)將重點討論Hadoop相關(guān)系統(tǒng)。這是因為很多為Hadoop開發(fā)的基準(zhǔn)測試集也可以用于測試那些替代品。
Hadoop的高級語言。此類系統(tǒng)開發(fā)有兩個目標(biāo)。第一個目標(biāo)是簡化Hadoop MapReduce作業(yè)的開發(fā)并自動優(yōu)化它們的執(zhí)行,從而使開發(fā)人員能夠?qū)W⒂诰幊踢壿嫛@纾瑏碜詙ahoo!的Pig提供一種稱為Pig Latin的文本語言,用于描述諸如連接、排序、過濾和用戶自定義操作等數(shù)據(jù)操作符。通過使用Pig Latin,復(fù)雜的任務(wù)可以轉(zhuǎn)換為一個或多個可在Apache Pig上執(zhí)行的MapReduce任務(wù)。Apache Tez 和Twill的開發(fā)都有類似目的。
第二個目標(biāo)是為了滿足不斷增長的實時數(shù)據(jù)提取的需求。傳統(tǒng)上,Hadoop MapReduce提供的批處理通常需要幾分鐘或幾個小時才能完成。因此,在Hadoop中添加高級語言的目的是支持實時數(shù)據(jù)處理。例如,加州大學(xué)伯克利分校的AMPLab建議Spark。
通過內(nèi)存計算來加速Hadoop的數(shù)據(jù)處理。Spark為不同的應(yīng)用提供了一個簡單易用的編程接口,同時使用RDD來為內(nèi)存中的計算范式提供高效的容錯處理。
Hadoop的SQL。為了解決實時查詢數(shù)據(jù)的問題,此類系統(tǒng)將SQL接口添加到Hadoop中。比如,受Google BigTable的啟發(fā),Apache HBase 5是在HDFS上建立的基于列的分布式數(shù)據(jù)庫。在HBase中,表被用作Hadoop MapReduce作業(yè)的輸入和輸出。類似地,Hive是由Facebook開發(fā)的一個流行的數(shù)據(jù)倉庫,它提供了一種名為HiveQL的類似SQL的語言,用于支持Hadoop上的交互式SQL查詢。這一類別的其他系統(tǒng)包括Apache Tajo(一個關(guān)系數(shù)據(jù)倉庫)、Apache Tajo(一個并行的數(shù)據(jù)庫)和Spark SQL(支持關(guān)系處理的Spark的一個組件,Shark是它的之前的版本)。
2.2.2 基準(zhǔn)測試集
在Hadoop的發(fā)布中,有幾個內(nèi)置的微基準(zhǔn)測試集(即 WordCount、Grep 、Sort和TeraSort),它們是目前最常用的MapReduce基準(zhǔn)測試集。通過引入性價比和能源消耗指標(biāo),TPCx-HS對TeraSort進(jìn)行了擴(kuò)展。Hadoop發(fā)行版的更高版本進(jìn)一步提供了幾個基準(zhǔn)測試集來測試其組件,包括HDFS(基準(zhǔn)測試集是TestDFSIO、DFSCIOTest和NNBench)和進(jìn)程間通信(基準(zhǔn)測試集是ThreadedMapBench)。HiBD (High-performance BigData)也測試了Hadoop網(wǎng)絡(luò)組件的性能。此外,HiBench和PUMA是兩組微基準(zhǔn)測試集,它們應(yīng)用在不同計算需求和不同數(shù)據(jù)傳輸量的領(lǐng)域。
GridMixMap和SWIM(Statistical Workload Injector for MapReduce)是兩種流行的端到端基準(zhǔn)測試集,它使用混合的合成工作負(fù)載來評估Hadoop集群。MRBench將TPC-H查詢轉(zhuǎn)換為MapReduce作業(yè)。PigMix是用來測試Pig的數(shù)據(jù)處理性能和可伸縮性的。
許多基準(zhǔn)測試套件支持多個大數(shù)據(jù)系統(tǒng)。HcBench和MRBS是用來評估Hadoop的MapReduce和Hive的。CloudSuite提供了流行的、可擴(kuò)展的工作負(fù)載,以評估在云架構(gòu)中部署的Hadoop MapReduce和NoSQL數(shù)據(jù)庫。BigDataBench全面覆蓋了Hadoop相關(guān)系統(tǒng)(包括Spark、Hive、Spark和Impala在內(nèi))的工作負(fù)載。
2.3 數(shù)據(jù)庫
2.3.1 系統(tǒng)
數(shù)據(jù)庫管理系統(tǒng)。幾十年來,并行的DBMSs被用作管理大規(guī)模數(shù)據(jù)的主要解決方案。除了傳統(tǒng)的關(guān)系型DBMSs(如MySQL 36和Oracle 41),在遵循原子性、一致性、隔離性、持久性屬性的基礎(chǔ)上(ACID),最近人們還提出了處理大數(shù)據(jù)的新型數(shù)據(jù)庫。這些數(shù)據(jù)庫(如Megastore、Mesa和Spanner)旨在提供數(shù)據(jù)庫的高可伸縮性,同時為用戶提供方便的基于SQL的查詢語言。此外,NewSQL數(shù)據(jù)庫(例如HStore)是另一種為高吞吐量的在線OLTP而設(shè)計的關(guān)系型數(shù)據(jù)庫,但它仍然保持ACID屬性。
NoSQL數(shù)據(jù)庫。然而,許多大數(shù)據(jù)應(yīng)用并不需要嚴(yán)格的ACID約束,比起一致性和可靠性,它們更注重低延遲、高吞吐量這樣的性能。在遵循了基本的可用性、軟狀態(tài)、最終基本的一致性后,種類繁多的NoSQL數(shù)據(jù)存儲遵守如下要求:基本可用性、軟狀態(tài)(軟狀態(tài)是指允許系統(tǒng)存在中間狀態(tài),而該中間狀態(tài)不會影響系統(tǒng)整體可用性)、最終一致性。對于大數(shù)據(jù)的處理,三種常用的NoSQL數(shù)據(jù)庫分別為Key/Value數(shù)據(jù)庫(如Amazon Dynamo、Cassandra和Linkedin Voldemort)、基于列的數(shù)據(jù)庫(如BigTable 和Hypertable)和基于文檔的存儲(如CouchDB和MongoDB)。
2.3.2 基準(zhǔn)測試集
在過去的幾十年里,TPC基準(zhǔn)測試集是評估DBMSs的實際標(biāo)準(zhǔn)。在13個TPC基準(zhǔn)測試集中,6個活躍的基準(zhǔn)測試集是:針對線上事務(wù)處理數(shù)據(jù)庫(OLTP Database)的TPC-C和TPCE,針對決策支持系統(tǒng)(DSSs)的TPC-H、TPC-DS和TPC-DI,而TPCVMS則將來自上述基準(zhǔn)測試集的工作負(fù)載混合在一起來評估虛擬化系統(tǒng)。這些基準(zhǔn)測試集仍是DBMSs大數(shù)據(jù)基準(zhǔn)測試解決方案的一般選擇。此外,最近人們還開發(fā)了一些基準(zhǔn)測試集來比較DBMSs和MapReduce系統(tǒng)。CALDA提供基于Hadoop的分析工作負(fù)載,將Hadoop與基于行的DBMS(DBMS-x)和基于列的DBMS(Vertica)進(jìn)行比較。AMPLab基準(zhǔn)測試集使用CALDA的工作負(fù)載比較了幾個數(shù)據(jù)分析系統(tǒng),包括Apache Tez、一個NoSQL數(shù)據(jù)庫(Amazon Redshit)以及Hadoop上的三個SQL系統(tǒng)(Hive, Shark, and Impala)。由TPC-DS發(fā)展而來的BigBench提供了在線服務(wù)工作負(fù)載和離線分析工作負(fù)載,可以用來比較Hadoop和Teradata DBMS。
近年來,NoSQL數(shù)據(jù)庫的涌現(xiàn)引發(fā)了對新基準(zhǔn)測試集的需求。YCSB是一個流行的基準(zhǔn)測試集,它提供了云在線服務(wù)工作負(fù)載(也就是在線事務(wù)處理操作的混合)。它可以用來比較兩個非關(guān)系數(shù)據(jù)庫(Cassandra和HBase)和一個異地分布式數(shù)據(jù)庫(PNUTS)以及一個傳統(tǒng)的關(guān)系數(shù)據(jù)庫(MySQL)。YCSB+擴(kuò)展了YCSB以評估NoSQL數(shù)據(jù)庫的高級特性(如提取加速技術(shù))。BG提供了用于仿真社交網(wǎng)絡(luò)操作的工作負(fù)載,這個基準(zhǔn)測試集可以用來比較DBMSs(如SQL-X和CASQL)和NoSQL(如MongoDB)。
2.4 專用系統(tǒng)
在學(xué)術(shù)界、工業(yè)界和管理界中越來越多地使用圖數(shù)據(jù)、流數(shù)據(jù)和科學(xué)數(shù)據(jù),這促使了許多專用系統(tǒng)的產(chǎn)生。與通用的大數(shù)據(jù)系統(tǒng)相比,這些專用系統(tǒng)的設(shè)計是為了在執(zhí)行復(fù)雜查詢或分析特定數(shù)據(jù)類型時提供更好的性能。根據(jù)系統(tǒng)所支持的數(shù)據(jù)類型,我們介紹三個主流的專用系統(tǒng)。
2.4.1圖數(shù)據(jù)
系統(tǒng)。隨著數(shù)據(jù)和網(wǎng)絡(luò)科學(xué)的快速發(fā)展,越來越多的信息被連接起來形成了個大圖。在一個互聯(lián)的世界里,圖自然地模擬出復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如社交網(wǎng)絡(luò)、蛋白質(zhì)相互作用網(wǎng)絡(luò)和自然網(wǎng)絡(luò)。圖數(shù)據(jù)被廣泛應(yīng)用于許多領(lǐng)域,如在線零售、社交應(yīng)用和生物信息學(xué)。為了解決圖數(shù)據(jù)日益增長的規(guī)模和復(fù)雜性所帶來的挑戰(zhàn),兩類圖系統(tǒng)被人們開發(fā)出來:(1) 圖數(shù)據(jù)庫,如Neo4j;(2) 分布式圖處理系統(tǒng),如Google Pregel要求程序員根據(jù)頂點的操作和交互來編寫函數(shù),Giraph和Graphx分別是Pregel在Hadoop和Spark中開源的實現(xiàn),HaLoop是Hadoop中MapReduce的改進(jìn)版本,它用于迭代圖的數(shù)據(jù)分析。
基準(zhǔn)測試集。人們已經(jīng)開發(fā)了許多圖基準(zhǔn)測試集來評估圖數(shù)據(jù)庫、高性能計算(HPC)系統(tǒng)和超算系統(tǒng)(如Graph 500)。在評估大數(shù)據(jù)應(yīng)用時,數(shù)據(jù)量大和圖計算的多樣性帶來了新的挑戰(zhàn)——我們需要新的基準(zhǔn)測試集。LinkBench和GraphBIG是針對此類問題面向Facebook社交網(wǎng)絡(luò)和IBM System G的場景開發(fā)的。其他的基準(zhǔn)測試集包括Waterloo Graph Benchmark (WGB)、Graphalytics、CloudSuite。此外,BigDataBench也提供了工作負(fù)載來比較圖數(shù)據(jù)庫、分布式圖處理系統(tǒng)和Hadoop相關(guān)系統(tǒng)。
2.4.2流數(shù)據(jù)
系統(tǒng)。流式數(shù)據(jù)處理的巨大的潛在價值與大數(shù)據(jù)的流處理系統(tǒng)的出現(xiàn)息息相關(guān)。在這些系統(tǒng)中,數(shù)據(jù)不斷地到達(dá),并且在短時間內(nèi)處理。傳統(tǒng)的流數(shù)據(jù)主要來自傳感器網(wǎng)絡(luò)和金融交易。今天,大多數(shù)流數(shù)據(jù)是由Web 2.0應(yīng)用程序和物聯(lián)網(wǎng)(IoT)設(shè)備生成的文本和媒體數(shù)據(jù)。因此,在處理大量流數(shù)據(jù)時,需要更強(qiáng)大的流數(shù)據(jù)處理來提供高可用性和快速恢復(fù)能力。為了應(yīng)對這一挑戰(zhàn),來自開源社區(qū)的流分析系統(tǒng)(如Apache Storm、Spark Streaming和Samza)和來自工業(yè)界的流分析系統(tǒng)(如IBM的InfoSphere Streams和TIBCO)已經(jīng)被提出。
基準(zhǔn)測試。開發(fā)流基準(zhǔn)測試集需要解決幾個挑戰(zhàn)性問題,其中包括生成具有語義有效性的數(shù)據(jù)、為連續(xù)的查詢結(jié)果生成正確的答案、設(shè)計一個查詢語言標(biāo)準(zhǔn)。線性負(fù)載是一種用于評估流數(shù)據(jù)管理系統(tǒng)的過時的流基準(zhǔn)測試集,它只能支持?jǐn)?shù)值數(shù)據(jù)。Stream Bench和HiBench提供了7個微基準(zhǔn)測試集來評估Storm、Spark Streaming 和Samza。Streams是最新的一個用來比較IBM InfoSphere Streams和Apache Storm的基準(zhǔn)測試集,它的工作負(fù)載是模擬在線垃圾郵件檢測和電子郵件分類。另外,CloudSuite通過一個媒體流基準(zhǔn)測試集來測試Darwin Streaming Server。BigDataBench通過三個交互式工作負(fù)載來測試Storm。
2.4.3科學(xué)數(shù)據(jù)
系統(tǒng)。現(xiàn)代研究儀器可以產(chǎn)生大量的科學(xué)數(shù)據(jù),它們的數(shù)據(jù)量和速度都呈指數(shù)級增長。例如,歐洲核子研究組織(CERN)的物理學(xué)家和工程師儲存了200千萬億字節(jié)(PB)的數(shù)據(jù),每年產(chǎn)生約15千萬億字節(jié)的數(shù)據(jù)。當(dāng)前和未來的科學(xué)數(shù)據(jù)基礎(chǔ)設(shè)施對高效捕獲、存儲、分析和整合這些海量數(shù)據(jù)集的需求不斷增長,這將刺激許多科學(xué)大數(shù)據(jù)系統(tǒng)的發(fā)展,例如,SciDB是一個用于管理PB級科學(xué)數(shù)據(jù)的分析數(shù)據(jù)庫。基于這樣的想法,許多科學(xué)數(shù)據(jù)集(如衛(wèi)星圖像、海洋、望遠(yuǎn)鏡和基因組數(shù)據(jù)集)在SciDB中都被表示為數(shù)組,SciDB采用多維數(shù)組數(shù)據(jù)模型來支持復(fù)雜的查詢。國家生物技術(shù)信息中心(NCBI)還提供了一個系統(tǒng)列表(如Basic Local Alignment Search Tool (BLAST))來存儲和處理基因組數(shù)據(jù)。MAKER和Work Queue是為促進(jìn)基因組數(shù)據(jù)大規(guī)模并行處理而開發(fā)的系統(tǒng)。此外,R是一個普適的環(huán)境,為科學(xué)應(yīng)用程序提供統(tǒng)計分析技術(shù),也為一些最近的系統(tǒng)(如SparkR)提供了一個可以支持大數(shù)據(jù)的分布式的R的實現(xiàn)。
基準(zhǔn)測試集。盡管有各種各樣的科學(xué)大數(shù)據(jù)系統(tǒng),但目前還沒有可用的基準(zhǔn)測試集。DSIMBench是為了比較R和Hadoop而開發(fā)的。GenBase提供工作負(fù)載來比較R、Hadoop、DBMSs(Postgres和System X)和SciDB。BigDataBench提供工作負(fù)載來測試Message Passing Interface (MPI)和Work Queue。
工作負(fù)載生成技術(shù)
這一節(jié),我們在表2和表3總結(jié)了已經(jīng)存在的大數(shù)據(jù)基準(zhǔn)測試集,從兩個技術(shù)維度——工作負(fù)載實現(xiàn)技術(shù)(3.1節(jié))和運行時執(zhí)行模式(3.2節(jié))——來揭示工作負(fù)載生成技術(shù)的基本特征。然后我們接著在3.3節(jié)中討論了開放性的挑戰(zhàn)問題。
3.1 工作負(fù)載實現(xiàn)技術(shù)
在大數(shù)據(jù)系統(tǒng)的基準(zhǔn)測試研究中,工作負(fù)載描述了它們的典型行為。也就是說,工作負(fù)載可通過從這些行為中提取操作(函數(shù)或算法)形成。因此,根據(jù)用于形成工作負(fù)載的操作類型,我們將大數(shù)據(jù)工作負(fù)載劃分為三類:
1. I / O操作。這些操作在輸入數(shù)據(jù)或文件上執(zhí)行(例如,讀、寫、移動數(shù)據(jù)或新建、刪除文件)。在現(xiàn)有的大數(shù)據(jù)基準(zhǔn)測試集中(除了GridMix),一個工作負(fù)載是由一個I/O操作來實現(xiàn)。
2. 算法操作。當(dāng)作為一種算法實現(xiàn)時,一個工作負(fù)載由一個或多個對輸入數(shù)據(jù)的獨立操作組成。
3. 基本操作(EO)。這些操作要么是標(biāo)準(zhǔn)的SQL操作符,要么是具有類似語法的操作符(如Pig Latin)。與以上兩類分別實現(xiàn)為固定的I/O操作或算法操作的工作負(fù)載相比,第三類工作負(fù)載的實現(xiàn)支持工作負(fù)載中EOs的動態(tài)組合,以模擬不同的應(yīng)用場景。
現(xiàn)在,我們將在3.1.1、3.1.2和3.1.3小節(jié)分別針對Hadoop相關(guān)系統(tǒng)、數(shù)據(jù)庫和專用系統(tǒng)的基準(zhǔn)測試集回顧其工作負(fù)載實現(xiàn)技術(shù)。
表2. 大數(shù)據(jù)基準(zhǔn)測試集的負(fù)載生成技術(shù):單個負(fù)載
3.1.1 Hadoop相關(guān)系統(tǒng)
在Hadoop內(nèi)置的微基準(zhǔn)測試集中,工作負(fù)載是用算法操作實現(xiàn)的。具體地說,WordCount、Grep和Sort工作負(fù)載的算法分別是計算單詞頻率、計算匹配的正則表達(dá)式的數(shù)量以及排序輸入數(shù)據(jù)。這些工作負(fù)載代表了Hadoop應(yīng)用中的CPU密集型行為(WordCount)和I/O密集型行為(Grep和Sort)。TeraSort是一種改進(jìn)版的Sort。該算法首先對輸入數(shù)據(jù)進(jìn)行采樣,并將其劃分為若干個有序段。然后,它用map/reduce任務(wù)對片段中的數(shù)據(jù)進(jìn)行局部排序,并將所有的reduce任務(wù)合并在一起,以對輸入進(jìn)行整體排序。因此,Terasort在map階段是CPU密集型,而在reduce階段則是I/O密集型。
大多數(shù)用于測試Hadoop組件的基準(zhǔn)測試集都是通過I/O操作實現(xiàn)的。NNBench通過文件操作來評測HDFS的NameNode。TestDFSIO和DFSCIOTest都是用來測量HDFS的讀取和寫入數(shù)據(jù)的能力。ThreadedMapBench使用Sort作為MapReduce的例子來測試網(wǎng)絡(luò)的移動性能,在這種情況下,map任務(wù)的輸出可以有一個或多個溢出。類似地,HiBD的工作負(fù)載會將均勻地、偽隨機(jī)的、或不均勻地中間數(shù)據(jù)打亂重排。
此外,PUMA集成了Hadoop內(nèi)置的微基準(zhǔn)測試集,并為統(tǒng)計分析和機(jī)器學(xué)習(xí)算法開發(fā)了10個新特性:(1) Term-vector可以找到文檔中出現(xiàn)頻率最高的單詞;(2) Inverted-index創(chuàng)建了一個文字到文檔的倒排索引;(3) Selfjoin把k-field的關(guān)聯(lián)作為(k + 1)-field關(guān)聯(lián)的輸入和輸出;(4) Adjacency-list生成圖中節(jié)點的鄰接表;(5)k - means聚類;(6) Classification將輸入歸為k個預(yù)定義類中的一個;(7) Histogram-movies生成輸入數(shù)據(jù)的直方圖;(8) Histogram-ratings在 MovieLens數(shù)據(jù)集中生成一份評級的直方圖;(9) SequenceCount可以統(tǒng)計一個文檔中3-gram的數(shù)量;(10) Ranked Inverted Index可以根據(jù)文檔中單詞出現(xiàn)的頻率將其降序排列。
GridMix和SWIM是兩種流行的端到端基準(zhǔn)測試,它們使用了I/O操作來實現(xiàn)合成的MapReduce工作負(fù)載。具體來說,GridMix實現(xiàn)了兩種工作負(fù)載:LOADJOB模擬讀、寫、打亂以及map和reduce任務(wù);而SLEEPJOB則將這些任務(wù)掛起。SWIM使用數(shù)據(jù)打亂操作來模擬MapReduce作業(yè)中的shuffle/input和output/shuffle比率。此外,MRBench實現(xiàn)了MapReduce框架中的SQL操作符(如select、order和join),并將22個TPCH查詢轉(zhuǎn)換為MapReduce作業(yè)。PigMix是由Pig發(fā)展而來,因此它的工作負(fù)載由Pig操作符組成(如連接、分組和分割),其語法嚴(yán)格遵守SQL標(biāo)準(zhǔn)。Pigmix有12個查詢工作負(fù)載,而PigMix2又增加了5個。
最后,有兩個基準(zhǔn)測試套件包含了各種各樣的微基準(zhǔn)測試集和端到端基準(zhǔn)測試集。HcBench由具有交互工作負(fù)載的基準(zhǔn)測試集組成,它能模擬實時數(shù)據(jù)分析場景。MRBS的主要是通過在工作負(fù)載執(zhí)行期間生成和注入故障負(fù)載來評估Hadoop集群的可依賴性和可靠性,這個基準(zhǔn)測試集套件提供了五個端到端基準(zhǔn)測試集,分別用來代表數(shù)據(jù)密集型和計算密集型場景。
3.1.2數(shù)據(jù)庫
在TPC系列的基準(zhǔn)測試集中,工作負(fù)載是通過把標(biāo)準(zhǔn)SQL操作符和其他操作符結(jié)合在一起實現(xiàn)的,其中標(biāo)準(zhǔn)SQL操作符包括算術(shù)、字符、比較、邏輯、集合。這些操作符可以三種方式(即順序的、并行的和迭代組合)組合起來形成代表不同業(yè)務(wù)場景的查詢工作負(fù)載。TPC-C和TPC-E提供了5到10個事務(wù)類型的OLTP工作負(fù)載來模擬批發(fā)供應(yīng)商和經(jīng)紀(jì)公司的查詢。TPC-H提供了22個特設(shè)的負(fù)載來表示在DSSs(decision support system)中插入和刪除數(shù)據(jù)的操作。PC-DS進(jìn)一步使用99個查詢模板來支持DSSs中數(shù)千個查詢的生成。這些查詢工作負(fù)載可以分為四類業(yè)務(wù)場景:報告、點對點、迭代查詢和數(shù)據(jù)挖掘。此外,TPC-ID能夠表示DSSs中的兩個數(shù)據(jù)集成場景的工作負(fù)載,這兩個集成場景分別是:(1)在最初創(chuàng)建DSS時加載數(shù)據(jù)的操作;(2)將新數(shù)據(jù)集成到現(xiàn)有DSS中的操作。
使用SQL操作符,BigBench定義了30個查詢工作負(fù)載來表示大數(shù)據(jù)分析中的典型行為。這些工作負(fù)載覆蓋了5個業(yè)務(wù)模型(銷售、推銷、運營、供應(yīng)鏈和新業(yè)務(wù)模型)、3個數(shù)據(jù)結(jié)構(gòu)(結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù))以及3種分析技術(shù)(統(tǒng)計分析、數(shù)據(jù)挖掘和報告)。
另外,CALDA使用5個操作符來實現(xiàn)三個查詢工作負(fù)載(掃描、聚合和連接),這幾個工作負(fù)載代表了MapReduce和DMBSs中的數(shù)據(jù)分析任務(wù)。AMPLab基準(zhǔn)測試集繼承了這些工作負(fù)載,并添加了使用PageRank算法實現(xiàn)的工作負(fù)載。BG通過使用讀取和更新數(shù)據(jù)庫的操作來模擬社交網(wǎng)絡(luò)操作。
通過對各種web應(yīng)用程序進(jìn)行測試,YCSB定義了云服務(wù)系統(tǒng)的4個基本操作。為了得到實際的操作組合,YCSB采用了四種分布(uniform、Zipfian、Latest和Multinomial)來決定執(zhí)行的四個基本操作中的一個。該基準(zhǔn)測試集提供5個核心的工作負(fù)載(即頻繁更新、頻繁讀取、只讀、讀取最新的和讀取短期的)表示5個典型的云服務(wù)應(yīng)用。
3.1.3專用系統(tǒng)
圖數(shù)據(jù)、流數(shù)據(jù)和科學(xué)數(shù)據(jù)是當(dāng)前專用大數(shù)據(jù)系統(tǒng)的重點。我們將討論這些系統(tǒng)的工作負(fù)載生成技術(shù)。
圖數(shù)據(jù)。圖由有限數(shù)量的頂點(節(jié)點)和邊以及與之相關(guān)的屬性組成。從對圖的操作來看,圖的工作負(fù)載通常有4種:圖的查詢、圖的遍歷、圖的更新和圖的分析。
LinkBench和WGB都使用SQL操作符來實現(xiàn)工作負(fù)載。LinkBench是為通用圖數(shù)據(jù)庫(如MySQL和HBase)設(shè)計的,它的工作負(fù)載應(yīng)用場景是三種Facebook社交圖操作:圖查詢(獲取定點/邊)、圖更新(插入、更新和刪除定點/邊)和圖分析(計數(shù)和測邊距)。WGB在其工作負(fù)載中實現(xiàn)了三個分布式處理場景:圖查詢(查找匹配的頂點或邊、查找k跳鄰居、可到達(dá)性和最短路徑查詢、模式匹配)、圖更新(添加/刪除頂點或邊、更新圖結(jié)構(gòu))和圖分析(PageRank和聚類)。
此外,Graphalytics在其社交網(wǎng)絡(luò)工作負(fù)載中使用了各種算法來測試圖分析系統(tǒng)的瓶頸。這些工作負(fù)載包括三種:圖遍歷(廣度優(yōu)先搜索(BFS))、圖更新(圖演變)和圖分析(一般統(tǒng)計信息、連接組件(CC)和社區(qū)檢測)。GraphBIG是為CPU和GPU平臺開發(fā)的基準(zhǔn)測試集,它的13個工作負(fù)載覆蓋三個應(yīng)用場景:圖遍歷(BFS,DFS)、圖更新(圖構(gòu)建、更新和拓?fù)渥冃?和圖分析(最短路徑、k-core分解、CC、圖著色、三角形數(shù)、吉布斯推論、度中心性、中介中心性)。
流數(shù)據(jù)。Stream Bench提供了幾個微基準(zhǔn)測試集來表示流應(yīng)用場景中的典型行為。而Streams實現(xiàn)的工作負(fù)載可以用來表示電子郵件分類應(yīng)用的七個階段。BigDataBench提供了三種工作負(fù)載:協(xié)同過濾 (CF)、Nutch網(wǎng)頁搜索以及熱點頭條(它對傳入流的主題進(jìn)行滾動計數(shù),并識別最熱門的k個話題)。
科學(xué)數(shù)據(jù)。當(dāng)前的基準(zhǔn)測試集提供了處理微陣列數(shù)據(jù)的工作負(fù)載。DSIMBench實現(xiàn)了一個聚類算法用來作一個微陣列計算的工作負(fù)載。GenBase的工作負(fù)載對應(yīng)于DNA微陣列數(shù)據(jù)集的5種典型的基因組算法,這些工作負(fù)載代表了生物學(xué)和醫(yī)療領(lǐng)域的5種應(yīng)用場景。BigDataBench基于Scalable Assembly at Notre Dame (SAND) 和BLAST實現(xiàn)了一系列基因組數(shù)據(jù)的工作負(fù)載。
3.1.4同時適用于三大陣營系統(tǒng)的基準(zhǔn)測試套件
HiBench由Hadoop內(nèi)置微基準(zhǔn)測試集(WordCount、Sort、TeraSort)、Nutch網(wǎng)頁搜索(PageRank和Nutch索引)以及Mahout(貝葉斯分類和k-means聚類)組成。這些工作負(fù)載既可以在Hadoop運行,也可以在Spark上運行。該套件還提升了TestDFSIO的性能來計算HDFS聚類的吞吐量。它的最新版本集成了CALDA和Stream Bench的微基準(zhǔn)測試集。
CloudSuite是為擴(kuò)展性云應(yīng)用而設(shè)計的,因此它的工作負(fù)載偏向于在線服務(wù)。具體地說,它對數(shù)據(jù)庫和專用系統(tǒng)的基準(zhǔn)測試集提供了服務(wù)工作負(fù)載,同時它的基準(zhǔn)測試集為Hadoop相關(guān)系統(tǒng)提供了分析工作負(fù)載。Hadoop分析工作負(fù)載是使用Mahout機(jī)器學(xué)習(xí)算法實現(xiàn)的。在其圖基準(zhǔn)測試集中,TunkRank算法通過計算Twitter用戶的追隨者的數(shù)量來估計該用戶的影響力。在其流基準(zhǔn)測試集中,工作負(fù)載處理QuickTime流和MPEG數(shù)據(jù)。
BigDataBench是一個基準(zhǔn)測試套件,它提供的工作負(fù)載不僅涵蓋不同領(lǐng)域的大數(shù)據(jù)應(yīng)用場景(即因特網(wǎng)服務(wù)、多媒體分析和生物信息學(xué)),還包括當(dāng)前最先進(jìn)的大型數(shù)據(jù)軟件棧。首先,BigDataBench為與Hadoop相關(guān)的系統(tǒng)提供了7個微基準(zhǔn)測試集。每個基準(zhǔn)測試集都包括不同的工作負(fù)載,它們基于四個軟件棧(Hadoop、Spark、MPI和Flink)來實現(xiàn)相同的算法。此外,BigDataBench提取了9個用于數(shù)據(jù)庫的有代表性的操作,每個操作都是基于三個軟件棧(Hive、Shark和Impala)實現(xiàn)的工作負(fù)載。最后,BigDataBench在工作負(fù)載中實現(xiàn)了幾個用于圖、流和生物信息應(yīng)用的算法。
3.2工作負(fù)載運行時執(zhí)行模式
在本節(jié)中,我們首先介紹應(yīng)用在現(xiàn)有基準(zhǔn)測試集中的單個工作負(fù)載的提交策略(3.2.1節(jié))。然后,為模擬實際的應(yīng)用場景(3.2.2節(jié)),我們將討論關(guān)于混合工作負(fù)載的基準(zhǔn)測試技術(shù)。
3.2.1工作負(fù)載提交策略
在工作負(fù)載執(zhí)行期間,提交策略決定了工作負(fù)載的輸入數(shù)據(jù)和輸入模式(即提交速率和順序)。我們將本文回顧的基準(zhǔn)測試集的提交策略分成三類。
預(yù)先指定。在許多基準(zhǔn)測試集中,工作負(fù)載的輸入數(shù)據(jù)、提交速率和順序都是在執(zhí)行前指定的。這里可分為兩種情況。在第一種情況下,基準(zhǔn)測試集一次執(zhí)行一個工作負(fù)載。例如,在Hadoop內(nèi)置的微基準(zhǔn)測試集(如WordCount、Grep和Sort)中,工作負(fù)載執(zhí)行遵循兩步預(yù)定流程:上傳輸入數(shù)據(jù)到HDFS、運行工作負(fù)載。TeraSort還有第三步來檢驗已排序的輸出數(shù)據(jù)。其他的微基準(zhǔn)測試集(包括TPCx-HS、Stream Bench、DSIMBench、 HcBench和CloudSuite的微基準(zhǔn)測試集)也屬于這種情況。此外,盡管一些端到端基準(zhǔn)測試集(如PigMix, WGB, Graphalytic, GraphBIG和Streams)使用了一組相關(guān)的工作負(fù)載來模擬應(yīng)用場景,但這些基準(zhǔn)測試集仍是一個個地執(zhí)行這些工作負(fù)載。在第二種情況下,許多端到端基準(zhǔn)測試集使用固定的輸入數(shù)據(jù)、提交速率和順序來執(zhí)行多個工作負(fù)載。例如,TPC系列基準(zhǔn)測試集使用了一個標(biāo)準(zhǔn)的工作負(fù)載執(zhí)行過程,它有5個步驟:系統(tǒng)設(shè)置、數(shù)據(jù)庫設(shè)置、數(shù)據(jù)庫加載、工作負(fù)載生成和執(zhí)行以及系統(tǒng)度量。其他的一些數(shù)據(jù)庫基準(zhǔn)測試集(如CALDA、AMPLab基準(zhǔn)測試集和BigBench)也都應(yīng)用了類似的工作負(fù)載執(zhí)行模式。
參數(shù)控制。這類基準(zhǔn)測試集允許用戶使用參數(shù)控制工作負(fù)載的執(zhí)行。首先,在用于測試Hadoop組件的微基準(zhǔn)測試集中,NNBench和MRBench提供了用于控制創(chuàng)建文件數(shù)的參數(shù),DFSCIOTest提供了用于控制文件數(shù)量和大小的參數(shù),ThreadedMapBench提供參數(shù)來控制輸入文件的大小、每個map的分支數(shù)量以及每個主機(jī)的map數(shù)量。此外,YCSB提供了一個客戶端參數(shù)列表,它不僅可以決定輸入數(shù)據(jù)和工作負(fù)載的大小和內(nèi)容,還控制了工作負(fù)載提交率(即目標(biāo)吞吐量和線程數(shù)量)。類似地,BG提供數(shù)據(jù)庫、工作負(fù)載和評級參數(shù)來控制數(shù)據(jù)內(nèi)容(如行數(shù))、工作負(fù)載提交(例如,會話數(shù)和會話間的思考時間)以及在基準(zhǔn)測試中使用的評估指標(biāo)。LinkBench保持平均輸入率不變,但允許用戶根據(jù)指數(shù)分布來配置和決定請求到達(dá)間隔。
真實日志驅(qū)動。通過使用這種提交策略,基準(zhǔn)測試集可以根據(jù)真實世界的日志來真實地復(fù)現(xiàn)工作負(fù)載。SWIM復(fù)現(xiàn)合成的MapReduce作業(yè),它的輸入速率、順序和輸入數(shù)據(jù)的大小都采用了Facebook記錄的的真實作業(yè)。類似地,BigDataBench的多租戶版本(名為BigDataBench-mt 115)根據(jù)Google集群日志中匿名作業(yè)的提交模式復(fù)現(xiàn)了實際的Hadoop和Spark作業(yè) (WordCount、Grep和排序) ,復(fù)現(xiàn)的前提是實際作業(yè)和匿名作業(yè)的工作負(fù)載特征非常相似。
最后,一些基準(zhǔn)測試集應(yīng)用了混合提交策略。GridMix支持以上全部三類提交策略。在第一個策略中,作業(yè)提交過程是預(yù)先指定的,一旦完成了作業(yè),就會提交作業(yè)。如果測試的集群負(fù)載不足或過量,則第二個策略會自動增加或降低提交率,GridMix使用了這個策略,它提供了5個參數(shù)來定義負(fù)載過量和不足的閾值。第三種策略提交的作業(yè)完全遵循真實日志中的工作時間的間隔,比如Rumen日志。MRBS提供了兩種提交策略:使用預(yù)先指定策略時,它會在提交新工作之前等待當(dāng)前工作負(fù)載完成;使用參數(shù)控制策略時,它會創(chuàng)建多個并發(fā)客戶端,并提供參數(shù)來控制每個客戶端工作負(fù)載提交的等待時間間隔。
3.2.2工作負(fù)載混合
真正的大數(shù)據(jù)系統(tǒng)通常執(zhí)行由多個租戶提交的并發(fā)運行的多個工作負(fù)載。在執(zhí)行期間,不同類型的工作負(fù)載有不同的比例。然而,大多數(shù)現(xiàn)有的微基準(zhǔn)測試集都使用單租戶工作負(fù)載提交模式。也就是說,這些基準(zhǔn)測試集僅根據(jù)單個隊列執(zhí)行工作負(fù)載,在表2中我們把這些基準(zhǔn)測試叫做“not a mix”。另一方面,大多數(shù)端到端基準(zhǔn)測試集和一些基準(zhǔn)測試套件采用多租戶提交模式,因此它們可以生成一種合成的或現(xiàn)實的工作負(fù)載混合。
合成工作負(fù)載的混合。許多基準(zhǔn)測試集(如PigMix、HcBench和BigBench)都預(yù)先確定了不同工作負(fù)載的比例。TPC系列基準(zhǔn)測試集還設(shè)計了一個具有不同比例的查詢集。類似地,YCSB調(diào)用包來聯(lián)結(jié)一套相關(guān)的工作負(fù)載以模擬應(yīng)用場景(比如有“大量讀”或“大量寫”工作負(fù)載的場景)。LinkBench提供了合成的圖操作工作負(fù)載混合來模擬Facebook的社交網(wǎng)絡(luò)場景。此外,MRBS還使用隨機(jī)分布等概率分布來決定不同工作負(fù)載的比例。
真實工作負(fù)載的混合。由于真實的日志是工作負(fù)載混合模式最可信的來源,所以GridMix和SWIM首先通過挖掘生產(chǎn)日志來描述MapReduce作業(yè)的真實組合,再根據(jù)日志運行I/O工作負(fù)載。根據(jù)Google的集群日志,BigDataBench也可以重現(xiàn)真實的Hadoop或Spark混合作業(yè)。
表3. 大數(shù)據(jù)基準(zhǔn)測試集的負(fù)載生成技術(shù):混合負(fù)載
3.3 開放性挑戰(zhàn)問題
根據(jù)工業(yè)標(biāo)準(zhǔn)(例如TPC和公司評價表現(xiàn)標(biāo)準(zhǔn)(SPEC)),從工作負(fù)載角度看,成功的基準(zhǔn)測試集有三個準(zhǔn)則:(1)相關(guān)性:負(fù)載應(yīng)能體現(xiàn)被測系統(tǒng)的典型行為;(2)可移植性:負(fù)載應(yīng)能在不同的軟件系統(tǒng)和架構(gòu)上執(zhí)行;(3)可伸縮性:負(fù)載數(shù)量應(yīng)能增加或刪除以來測試不同規(guī)模的系統(tǒng)。我們注意到已有的大數(shù)據(jù)基準(zhǔn)并不能完全符合以上三個準(zhǔn)則。
相關(guān)性。鑒別被測系統(tǒng)的典型行為是實現(xiàn)高度相關(guān)性負(fù)載的先決條件。大數(shù)據(jù)系統(tǒng)的快速發(fā)展要求基準(zhǔn)測試集不僅要緊跟當(dāng)前最先進(jìn)的技術(shù)和系統(tǒng),還要考慮未來的變化。例如,針對流數(shù)據(jù)和科學(xué)數(shù)據(jù)的專用系統(tǒng)的應(yīng)用范圍很廣,但現(xiàn)有基準(zhǔn)測試集僅涵蓋這些應(yīng)用場景的極少數(shù)情況。另一個例子是,盡管為Hadoop相關(guān)系統(tǒng)開發(fā)了大量基準(zhǔn)測試集,但這些基準(zhǔn)測試集主要是為批處理和對延遲不敏感的應(yīng)用開發(fā)的,并且它們不適用新出現(xiàn)的Hadoop相關(guān)系統(tǒng)(如Cloudera Kudu,它是2015年九月發(fā)布的支持延遲敏感分析應(yīng)用的系統(tǒng))。
大數(shù)據(jù)系統(tǒng)的多樣性和快速發(fā)展使得開發(fā)具有代表性的工作負(fù)載并使之覆蓋不同的應(yīng)用場景變得非常具有挑戰(zhàn)性。解決此問題的一個可行方案是從各種工作負(fù)載獨立于系統(tǒng)的行為中抽象出一般方法,從而將整個工作負(fù)載分解為許多EO(基本操作)及其組合模式。充分的抽象不僅允許使用現(xiàn)有的EO開發(fā)新的工作負(fù)載而很少或不改變EO本身,也為不同的系統(tǒng)實現(xiàn)留出空間。到目前為止,這種抽象方法已成功應(yīng)用于兩個領(lǐng)域:數(shù)據(jù)庫和HPC,它們使用標(biāo)準(zhǔn)SQL運算符和13 dwarfs(即一種用來描述HPC工作負(fù)載的計算和通信模式的方法)分別作為EO。 BigDataBench還初步研究了這種方法,它使用11個SQL運算符來表示三個大數(shù)據(jù)應(yīng)用場景:快速存儲、日志監(jiān)控和PageRank。
在數(shù)據(jù)應(yīng)用中,應(yīng)用抽象方法來深入了解EO和它們的組合模式需要解決三個挑戰(zhàn)性問題。首先,在大多數(shù)大數(shù)據(jù)應(yīng)用中(例如因特網(wǎng)服務(wù)和多媒體),工作負(fù)載是在半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)上執(zhí)行的,它們的操作和模式是復(fù)雜多樣的。其次,大數(shù)據(jù)領(lǐng)域(例如機(jī)器學(xué)習(xí)、數(shù)據(jù)庫、自然語言處理和計算機(jī)視覺)多意味著研究它們所有的應(yīng)用抽象是相當(dāng)耗時的。 最后,不同的大數(shù)據(jù)軟件棧(例如Hadoop,Spark,F(xiàn)link,Kudu)和庫(例如Mahout,MLlib,AstroML)中的算法種類加大了抽象的難度。
可移植性。我們首先從軟件系統(tǒng)(即軟件棧)的角度討論這個準(zhǔn)則。大數(shù)據(jù)系統(tǒng)通常允許程序員編寫一些代碼(例如Hadoop中的Map和Reduce函數(shù))來實現(xiàn)他們的應(yīng)用,同時將資源管理、作業(yè)調(diào)度、容錯處理和其他任務(wù)留給軟件棧。因此,與傳統(tǒng)軟件系統(tǒng)相比,大數(shù)據(jù)系統(tǒng)更加復(fù)雜。比如,典型的HPC系統(tǒng)僅有兩層:分布式調(diào)度器和分布式運行環(huán)境(例如MPI)。而 Hadoop有五層:JVM層、HDFS層、分布式調(diào)度器(如Yet Another Resource Negotiator(YARN))、分布式運行環(huán)境(Jobtrack和Tasktrack)以及Hive數(shù)據(jù)倉庫層。之前的研究表明,軟件棧對工作負(fù)載性能有顯著影響。例如,在Spark上運行的作業(yè)比在Hadoop上運行的作業(yè)快100倍。
因此,在不同的軟件系統(tǒng)上實現(xiàn)相同邏輯(算法)的工作負(fù)載十分必要,這可以實現(xiàn)這些系統(tǒng)間的相互比較。目前的一些基準(zhǔn)測試集支持在不同大數(shù)據(jù)系統(tǒng)上實現(xiàn)可移植的工作負(fù)載:HcBench和MRBS在Hadoop和Hive上實現(xiàn)工作負(fù)載;CALDA和AMPLab基準(zhǔn)測試在Hadoop上實現(xiàn)了并行數(shù)據(jù)庫和SQL引擎上的工作負(fù)載;HiBench在Hadoop,Spark,Storm和Samza上實現(xiàn)了工作負(fù)載;GenBase在R、Hadoop、DBMS和SciDB上實現(xiàn)了工作負(fù)載;BigDataBench在Spark、Hadoop、MPI和Flink上實現(xiàn)了八個工作負(fù)載;Hive,Shark和Impala實現(xiàn)了九個工作負(fù)載。 但是,大多數(shù)被調(diào)查的基準(zhǔn)測試集并不支持在不同的大數(shù)據(jù)系統(tǒng)上運行可移植的工作負(fù)載。
考慮到現(xiàn)代數(shù)據(jù)中心的異構(gòu)體系結(jié)構(gòu),在不同體系結(jié)構(gòu)上執(zhí)行工作負(fù)載是工作負(fù)載可移植性中同樣重要的一個方面。但是,現(xiàn)有的基準(zhǔn)測試集只做了初步工作。GraphBIG為基于CPU和GPU的平臺提供工作負(fù)載。BigDataBench提供了另一種解決方案,它在三個微架構(gòu)模擬器(Simics,MARSSx86和gem5)上實現(xiàn)Hadoop MapReduce工作負(fù)載,從而允許架構(gòu)研究人員在不同的體系結(jié)構(gòu)(如x86,ARM和SPARC)上對這些工作負(fù)載進(jìn)行模擬評估。該領(lǐng)域需要更多的基準(zhǔn)測試集。
伸縮性。為了評估不同規(guī)模的系統(tǒng),基準(zhǔn)測試集應(yīng)該能夠調(diào)整工作負(fù)載的規(guī)模,同時保證其提交和混合的真實性。但是,現(xiàn)有基準(zhǔn)測試集要么支持使用參數(shù)調(diào)整負(fù)載規(guī)模的工作負(fù)載而不考慮其真實性,要么執(zhí)行和提交真實工作負(fù)載但不能動態(tài)地調(diào)整規(guī)模。此問題的一種可能解決方案是分析真實日志以得到準(zhǔn)確的租戶信息(其中包括不同租戶的分布以及他們提交的工作負(fù)載)。使用這些分析得到的信息,基準(zhǔn)測試集可以構(gòu)建一個多租戶框架,并通過調(diào)整并發(fā)租戶數(shù)量來控制工作負(fù)載的規(guī)模,同時仍然保持這些用戶提交的工作負(fù)載分布與真實場景一致。
輸入數(shù)據(jù)生成技術(shù)
在本節(jié)中,我們首先介紹大數(shù)據(jù)的特征(4.1節(jié)),然后回顧現(xiàn)有大數(shù)據(jù)基準(zhǔn)測試集中的四類輸入數(shù)據(jù)生成技術(shù)(4.2節(jié))。最后,我們討論一些公開的挑戰(zhàn)(4.3節(jié))。表4列出了這些技術(shù)的摘要。請注意,有兩類基準(zhǔn)測試集不在此處的討論范圍內(nèi)。第一類(如GridMix、SWIM和HiBD)需要基準(zhǔn)測試用戶提供輸入數(shù)據(jù)。第二類(如NNBench和DFSCIOTest)則不需要輸入數(shù)據(jù)。
4.1 大數(shù)據(jù)特征
最常見的大數(shù)據(jù)特征是由美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)和Gartner提出的3個V,即數(shù)據(jù)量(volume),速度(velocity)和種類(variety)。
數(shù)據(jù)量。數(shù)據(jù)量是最能體現(xiàn)大數(shù)據(jù)規(guī)模的特征。大多數(shù)數(shù)據(jù)源的數(shù)據(jù)量通常由存儲單元數(shù)(如GigaByte(GB),TeraByte(TB),PB,ExaByte(EB)和Zettabyte(ZB))測量。在諸如社交圖的圖數(shù)據(jù)中,數(shù)據(jù)量是根據(jù)峰值(例如,2的20次方)的數(shù)量來測量。 據(jù)IBM稱,今天90%的數(shù)據(jù)是在過去幾年中創(chuàng)建的,生成的數(shù)據(jù)將在未來幾年呈指數(shù)級增長。例如,預(yù)計人類和設(shè)備每天將創(chuàng)建2.3萬億GB數(shù)據(jù),預(yù)計到2020年將創(chuàng)建超過35個ZB數(shù)據(jù)。另一個例子是,單個人類基因組測序結(jié)果大小約為140GB,而世界人口約為70億。
速度。速度不僅反映了數(shù)據(jù)生成有多快,更重要的是反映了大數(shù)據(jù)系統(tǒng)處理數(shù)據(jù)有多快。高速數(shù)據(jù)源有很多。例如網(wǎng)站和數(shù)據(jù)庫中的日志文件、 移動設(shè)備(如手機(jī))、 Facebook和Twitter等社交媒體、公共云中的在線游戲和大量服務(wù)應(yīng)用軟件(SaaS)。 以社交媒體為例,人們每月在YouTube上觀看40億小時的視頻,分享10億條內(nèi)容,每天在Facebook上創(chuàng)建超過500 TB的數(shù)據(jù),每小時發(fā)送1667萬條推文。如今的大數(shù)據(jù)系統(tǒng)必須實時處理如此如此快速產(chǎn)生的數(shù)據(jù)。
表4. 大數(shù)據(jù)基準(zhǔn)的數(shù)據(jù)生成技術(shù)總覽表
種類。種類表示數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)源的差異和多樣性。信息技術(shù)的快速發(fā)展意味著越來越多的數(shù)字化信息產(chǎn)生。數(shù)字化信息不僅包括結(jié)構(gòu)化數(shù)據(jù)(例如表格),還包括各種各樣的非結(jié)構(gòu)化數(shù)據(jù)(例如文本,圖像,音頻和視頻)和半結(jié)構(gòu)化數(shù)據(jù)(例如圖和XML數(shù)據(jù))。 數(shù)字信息的巨大價值極大促進(jìn)了各種大數(shù)據(jù)系統(tǒng)的發(fā)展,以存儲不同類型的數(shù)據(jù),并提供查詢和分析服務(wù)。
此外,IBM提出真實性是大數(shù)據(jù)的第四個特征。數(shù)據(jù)的真實性體現(xiàn)數(shù)據(jù)的可靠性水平。真實世界的原始數(shù)據(jù)集通常是混亂的,并且有內(nèi)在的錯誤、不一致性、不完整性、模糊和污染。為了避免由不正確和不確定的數(shù)據(jù)引起的問題,必須進(jìn)行數(shù)據(jù)清理和預(yù)處理以保證數(shù)據(jù)的真實性。為產(chǎn)生價值(例如做出正確的決策),組織和客戶都需要確保數(shù)據(jù)在處理和分析之前是可靠的。例如,IBM估計由于缺乏數(shù)據(jù)真實性,美國消費者每年損失3.1萬億美元。
為了在不同的基準(zhǔn)測試場景下產(chǎn)生有意義且可信的評估結(jié)果,數(shù)據(jù)生成器需要支持不同的數(shù)據(jù)類型(數(shù)據(jù)真實性),并在可控生成速率(數(shù)據(jù)速度)下生成可伸縮的工作負(fù)載輸入數(shù)據(jù)(數(shù)據(jù)量),同時保證所用數(shù)據(jù)的可靠性(數(shù)據(jù)真實性)。在此背景下,我們回顧了四類數(shù)據(jù)生成器。
4.2 大數(shù)據(jù)基準(zhǔn)測試中的數(shù)據(jù)生成器
(1)現(xiàn)有數(shù)據(jù)集:許多大基準(zhǔn)測試提供固定大小的數(shù)據(jù)集作為其工作負(fù)載的輸入。MRBS提供了從不同數(shù)據(jù)源(如MovieLens、Genomic研究中心和Wikipedia Dump)獲得的各種真實數(shù)據(jù)集。HiBench也使用維基百科轉(zhuǎn)儲和維基百科頁面到頁面的鏈接數(shù)據(jù)庫作為工作負(fù)載的輸入。除了這些數(shù)據(jù)集之外,HiBench還抓取了240萬個維基百科網(wǎng)頁,并將它們用作Nutch頁面索引工作負(fù)載的輸入數(shù)據(jù)。
為流數(shù)據(jù)和科學(xué)數(shù)據(jù)系統(tǒng)設(shè)計的基準(zhǔn)測試通常提供真實數(shù)據(jù)集作為工作負(fù)載輸入數(shù)據(jù)。Streams的電子郵件工作負(fù)載的輸入數(shù)據(jù)是1.1 GB的Enron數(shù)據(jù)集。Stream Bench開發(fā)了一個基于Apache Kafka的消息系統(tǒng)來從兩個真實數(shù)據(jù)集(AOL搜索數(shù)據(jù)和CAIDA匿名Internet日志數(shù)據(jù))生成流。DSIMBench使用來自NCBI的兩個微陣列數(shù)據(jù)集。GenBase也使用代表不同患者基因的微陣列數(shù)據(jù)。
此外,一些基準(zhǔn)測試集提供了具有一系列可選數(shù)據(jù)規(guī)模的現(xiàn)有數(shù)據(jù)集。PUMA擴(kuò)展了五個公開可用的數(shù)據(jù)集(Wikipedia, Self-Join, Adjacency-List, Movies, and Ranked-Inverted-Index),并為每個數(shù)據(jù)集提供了2到4個可用的數(shù)據(jù)規(guī)模,其范圍從30 GB到300 GB。HcBench提供了9個合成數(shù)據(jù)集,其數(shù)據(jù)大小以2的n次冪為單位生成,范圍從128MB到32GB。CloudSuite還提供了真實數(shù)據(jù)集列表,并支持?jǐn)U展這些數(shù)據(jù)集。
總結(jié)。使用現(xiàn)有的數(shù)據(jù)集可以保證數(shù)據(jù)的準(zhǔn)確性,因為它們通常是從現(xiàn)實世界的數(shù)據(jù)源獲得并經(jīng)過適當(dāng)?shù)那謇怼5牵绻麤]有數(shù)據(jù)生成器,則無法控制數(shù)據(jù)量和速度。此外,通過互聯(lián)網(wǎng)傳輸大數(shù)據(jù)集(如下載TB或PB規(guī)模數(shù)據(jù))非常消耗資源。
1. 基于合成分布的數(shù)據(jù)生成器:這類數(shù)據(jù)生成器根據(jù)它們采用的分布可以分為兩類。第一類生成器根據(jù)默認(rèn)的均勻分布創(chuàng)建隨機(jī)的工作負(fù)載輸入數(shù)據(jù)。 WordCount、Grep、Sort和TestDFSIO基準(zhǔn)使用兩個隨機(jī)數(shù)據(jù)生成器(RandomWriter、RandomTextWriter)。ThreadedMapBench、TeraSort、TPCx-HS和BG構(gòu)建自己的隨機(jī)數(shù)據(jù)生成器。TPC-C和TPC-H中使用dbgen在生成的數(shù)據(jù)庫表中產(chǎn)生均勻分布值。YCSB提供生成器來創(chuàng)建具有指定數(shù)量記錄的數(shù)據(jù)集。MRBench開發(fā)了一個表解析器將TPC-H表轉(zhuǎn)換為純文本文件。
第二類生成器在數(shù)據(jù)生成中使用非均勻分布。PigMix和PigMix2使用zeta分布和均勻分布產(chǎn)生數(shù)據(jù)。HiBench使用統(tǒng)計分布來生成k均值聚類工作負(fù)載的輸入數(shù)據(jù)。WGB基于遞歸現(xiàn)實圖生成器實現(xiàn)其圖生成器,它使用冪律分布模擬圖的實際屬性。類似地,Graphalytics通過添加兩個多度分布(Zeta分布和幾何分布模型)和圖結(jié)構(gòu)特征來擴(kuò)展社交網(wǎng)絡(luò)圖生成器。此外,BigBench 和TPC-DI都采用并行數(shù)據(jù)生成框架(PDGF)來生成結(jié)構(gòu)化表格數(shù)據(jù)。PDGF既提供使用種子策略創(chuàng)建隨機(jī)數(shù)的隨機(jī)生成器,也給出了提供基本分布函數(shù)列表(如正態(tài)分布,泊松分布和指數(shù)分布)的分布生成器。BigBench擴(kuò)展了PDGF以生成半結(jié)構(gòu)化數(shù)據(jù)(Web日志)和非結(jié)構(gòu)化數(shù)據(jù)(文本)。
總結(jié)。合成數(shù)據(jù)生成器易于定義和實現(xiàn)。他們可以根據(jù)用戶的基準(zhǔn)測試要求提供可伸縮的數(shù)據(jù)量。例如,TPC-C和TPC-H中使用的dbgen提供了8個比例參數(shù),它可以生成大小范圍從1GB到10,000 GB的表。這些生成器還可以通過調(diào)整數(shù)據(jù)生成期間的并行程度來控制數(shù)據(jù)速度。例如,RandomWriter和RandomTextWriter是為map / reduce程序?qū)崿F(xiàn)的。因此,它們可以通過調(diào)整map和reduce數(shù)量來控制數(shù)據(jù)速度。然而,盡管一些合成生成器(例如PigMix,HiBench和BigBench數(shù)據(jù)生成器)使用經(jīng)過充分研究的分布來模擬真實世界分布,但生成的合成數(shù)據(jù)與實際數(shù)據(jù)的接近程度取決于這些分布中使用的參數(shù)。最佳參數(shù)通常無法獲得,因此無法保證生成數(shù)據(jù)的真實性。
1. 基于真實數(shù)據(jù)的數(shù)據(jù)生成器:此類數(shù)據(jù)生成器捕獲并保留實際數(shù)據(jù)的重要特征,進(jìn)而生成具有類似特征的可伸縮的合成數(shù)據(jù)來維護(hù)數(shù)據(jù)的可靠性。例如,LinkBench首先從真實的Facebook社交圖譜中學(xué)習(xí)圖結(jié)構(gòu)的屬性,然后根據(jù)學(xué)到的屬性通過隨機(jī)生成圖節(jié)點和邊來創(chuàng)建真實的基準(zhǔn)數(shù)據(jù)。
事實上,在許多實際情況下,由于機(jī)密和花費的問題,獲取大規(guī)模真實數(shù)據(jù)集很困難。BigDataBench開發(fā)了Big Data Generation工具(BDGS)以便在真實的基礎(chǔ)上生成可伸縮的工作負(fù)載輸入數(shù)據(jù)集。BDGS有三個基本步驟:(1)選擇不同類型和來源的具有代表性的真實世界數(shù)據(jù)集。BigDataBench現(xiàn)在提供15個真實數(shù)據(jù)集;(2)構(gòu)建數(shù)據(jù)模型以捕獲和保留真實數(shù)據(jù)集的重要特征。BDGS提供了三個數(shù)據(jù)生成器:文本生成器、圖生成器和表生成器,它們使用隱式Dirichlet分配(LDA)模型、kronecker圖模型和PDGF來確定真實文本的特征、圖和表格數(shù)據(jù)。例如,文本生成器可以應(yīng)用LDA來描述文本中的主題和單詞分布。該生成器首先從真實文本數(shù)據(jù)集(如亞馬遜電影評論)中學(xué)習(xí)以獲得單詞字典,然后它使用該數(shù)據(jù)集訓(xùn)練LDA模型的參數(shù);(3)在合成數(shù)據(jù)的生成中可以使用參數(shù)控制數(shù)據(jù)量和速度。
總結(jié)。迄今為止,基于真實數(shù)據(jù)的生成器是有效生成具有可控數(shù)據(jù)量和速度的工作負(fù)載輸入的最佳技術(shù),同時確保生成的數(shù)據(jù)具有與實際數(shù)據(jù)類似的特征。然而,因為它無法定量評估生成的合成數(shù)據(jù)的真實性水平,這種數(shù)據(jù)生成技術(shù)僅能定性地保證數(shù)據(jù)的真實性。
1. 混合數(shù)據(jù)生成器:一些基準(zhǔn)測試集采用上述工作負(fù)載生成技術(shù)的混合。CALDA生成HTML文檔作為其工作負(fù)載輸入。在每個文檔中,visitDate,adRevenue和sourceIP的文件在特定范圍內(nèi)隨機(jī)生成,其他文件從真實數(shù)據(jù)集中采樣,并且使用Zipfian分布生成到其他頁面的鏈接。AMPLab基準(zhǔn)測試也使用CALDA數(shù)據(jù)生成器。此外,TPC-E和TPC-DS都使用傳統(tǒng)的合成均勻分布或高斯分布生成其大部分輸入數(shù)據(jù)。另一方面,它們基于真實世界的數(shù)據(jù)生成一小部分關(guān)鍵輸入數(shù)據(jù)。例如,TPC-E根據(jù)2000年美國和加拿大人口普查數(shù)據(jù)生成名稱、地址、性別數(shù)據(jù)。GraphBIG提供了四個真實的固定大小的數(shù)據(jù)集(Twitter Graph,IBM Knowledge Repo,IBM Watson Gene Graph和CA Road Network)和一個合成的圖生成器(Linked Data Benchmark Council (LDBC) Graph)生成具有社交網(wǎng)絡(luò)功能的可伸縮圖。
4.3 開放性挑戰(zhàn)問題
現(xiàn)有大數(shù)據(jù)基準(zhǔn)測試面臨的一個主要問題是使用現(xiàn)成的數(shù)據(jù)集作為工作負(fù)載輸入可以保證數(shù)據(jù)的準(zhǔn)確性,但數(shù)據(jù)量和速度有限。另一方面,當(dāng)生成不同數(shù)據(jù)量和速度的合成數(shù)據(jù)時,很難保證生成數(shù)據(jù)的真實性水平。在考慮不同的數(shù)據(jù)類型和來源(數(shù)據(jù)種類)時,這個問題更加復(fù)雜,此處有兩個具有挑戰(zhàn)性的關(guān)鍵問題。
第一個問題是現(xiàn)有的基準(zhǔn)測試集可以構(gòu)建模型來提取某些數(shù)據(jù)類型(如表格,文本和圖數(shù)據(jù))的真實數(shù)據(jù)集的特征,但是,他們很少關(guān)注其他數(shù)據(jù)類型,如流、圖、視頻和科學(xué)數(shù)據(jù)。此外,某些數(shù)據(jù)類型具有各種數(shù)據(jù)源,因此需要區(qū)分建模技術(shù)。例如,圖數(shù)據(jù)至少有四個來源:社交網(wǎng)絡(luò)、信息網(wǎng)絡(luò)、自然網(wǎng)絡(luò)和人造技術(shù)網(wǎng)絡(luò)。但是,現(xiàn)有基準(zhǔn)測試集僅提供了社交網(wǎng)絡(luò)模型。我們注意到流數(shù)據(jù)和科學(xué)數(shù)據(jù)也面臨數(shù)據(jù)源多樣化和模型缺少的問題。
第二個同時也是更具挑戰(zhàn)性的問題是如何評估產(chǎn)生的合成數(shù)據(jù)的真實性水平。恰當(dāng)?shù)牡脑u估方法不僅允許基準(zhǔn)測試集用戶評估其測試結(jié)果的可靠性水平,而且還能管理數(shù)據(jù)生成器中已建立模型的有效性。但是,據(jù)我們了解,幾乎沒有基準(zhǔn)測試集考慮過如何測量數(shù)據(jù)的真實性。在信息質(zhì)量評估(IQA)框架中,一些理論研究量化大數(shù)據(jù)中內(nèi)容的客觀性、真實性和可信度,從而提供了描述和評估數(shù)據(jù)真實性的一般方法。例如,本研究使用基于共有信息的搭配分析來評估文本數(shù)據(jù)的真正性和可信度,從而能夠分析真實文本數(shù)據(jù)與生成的合成數(shù)據(jù)之間的關(guān)系。因此,IQA框架為大數(shù)據(jù)基準(zhǔn)測試集提供了基礎(chǔ),它可以用來開發(fā)具有數(shù)據(jù)真實性定量評估機(jī)制的合成數(shù)據(jù)生成器。
評估中的指標(biāo)和性能參數(shù)
在本節(jié)中,我們首先總結(jié)了現(xiàn)有大數(shù)據(jù)基準(zhǔn)測試中使用的評估指標(biāo)(5.1節(jié)),如表5所示。 然后,我們討論了在對大數(shù)據(jù)系統(tǒng)進(jìn)行基準(zhǔn)測試時要考慮的重要性能參數(shù)(5.2節(jié))。
5.1 評價指標(biāo)
目前,性能,價格和能耗是評估計算機(jī)系統(tǒng)的最常用指標(biāo)。我們首先在第5.1.1節(jié)中介紹幾種流行的性能指標(biāo),然后討論第5.1.1節(jié)中的價格和能耗指標(biāo)。
表5. 大數(shù)據(jù)基準(zhǔn)評價標(biāo)準(zhǔn)總覽表
5.1.1 性能指標(biāo)
響應(yīng)時間:該度量表示的是工作負(fù)載(如MapReduce作業(yè)或數(shù)據(jù)庫查詢)從提交到完成時刻之間的時間間隔。大多數(shù)大數(shù)據(jù)基準(zhǔn)測試集都是計算響應(yīng)時間的算術(shù)平均值。相比之下,LinkBench使用六個響應(yīng)時間值:平均值,最大值,第50個,第75個,第95個和第99個百分點。其它一些基準(zhǔn)測試則計算系統(tǒng)在某些約束下的響應(yīng)時間。繼承自Wisconsin Benchmark的YCSB使用兩個指標(biāo)測試云服務(wù)系統(tǒng)的擴(kuò)展性能。第一個指標(biāo)是機(jī)器數(shù)量增加時的查詢響應(yīng)時間。第二個指標(biāo)是系統(tǒng)運行并增加時的響應(yīng)時間。從社交網(wǎng)絡(luò)的角度來看,BG提供了四個參數(shù)α,β,τ和δ,以將性能度量定義為響應(yīng)時間等于或小于β的請求的百分比α,而這些不可預(yù)測的請求數(shù)據(jù)量小于δ分鐘期間的τ百分比。
吞吐量:在大多數(shù)情況下,該指標(biāo)表示處理的查詢/作業(yè)數(shù)量的平均值或每單位時間的平均處理數(shù)據(jù)量(例如1秒或1小時)。TPC系列基準(zhǔn)測試使用吞吐量作為OLTP系統(tǒng)(TPC-C和TPC-E)、DSS(TPC-H,TPC-DS和TPC-DI)和虛擬化系統(tǒng)(TPC-VMS)的性能指標(biāo)。 在用于測試HDFS的TestDFSIO和DFSCIOTest中,吞吐量通過每個文件的I / O速率(MB /秒)的平均值和標(biāo)準(zhǔn)差計算。
可靠性:在NNbench和MRBS中,該標(biāo)準(zhǔn)分別表示成功的文件操作比率和MapReduce客戶端請求的比率。此外,Stream Bench引入了兩個懲罰度量來評估系統(tǒng)的可靠性:(1)吞吐量懲罰因子是故障吞吐量除以沒有故障的吞吐量。該因子小于或等于1; (2)延遲懲罰因子:故障延遲除以沒有故障的延遲。該因子大于或等于1。
可用性:在TPCx-HS,MRBS和TPC-DS中,該標(biāo)準(zhǔn)表示系統(tǒng)可用時間的比率。
上述四個指標(biāo)是用戶可感知的可觀察到的指標(biāo)。相比之下,體系結(jié)構(gòu)指標(biāo)是用于評估微架構(gòu)級別系統(tǒng)的不可觀察的性能指標(biāo)。因此,這些指標(biāo)獨立于軟件系統(tǒng),用于測試硬件架構(gòu)的性能。在當(dāng)前的基準(zhǔn)測試中(例如CloudSuite,BigDataBench和GraphBIG),有三種類型的體系結(jié)構(gòu)指標(biāo):(1)執(zhí)行周期劃分。 CloudSuite將工作負(fù)載執(zhí)行時間從兩個維度劃分為:應(yīng)用程序時間和操作系統(tǒng)時間,指令提交時間和停滯時間。 BigDataBench將執(zhí)行指令分為五種類型:整數(shù)、浮點、分支、存儲和加載。 GraphBIG將CPU執(zhí)行周期分為四個部分:前端停頓,后端停頓,休眠和不良推測(frontend stall, backend stall, retiring, and bad speculation)。(2)處理器計算強(qiáng)度。這些指標(biāo)包括每個周期的指令數(shù)(IPC),每秒百萬條指令數(shù)(MIPS),每秒百萬次浮點運算數(shù)(MFLOPS)以及計算與訪存的比率。(3)內(nèi)存分級結(jié)構(gòu)。這些指標(biāo)包括cache未命中情況,指令轉(zhuǎn)換檢測緩沖區(qū)(ITLB)和數(shù)據(jù)轉(zhuǎn)換檢測緩沖區(qū)(DTLB)在不同級別的未命中情況。這些未命中情況通常當(dāng)作miss-per-Kilo-instruction(MPKI)來計算。此外,GraphBIG使用兩個發(fā)散指標(biāo)來衡量GPU平臺:分支發(fā)散率(每個warp中未激活線程的平均比率)和內(nèi)存發(fā)散率(重放指令的比例)。
5.1.2 價格和能耗指標(biāo)
性價比指標(biāo):該指標(biāo)評估被測系統(tǒng)(SUT)價格對系統(tǒng)性能的影響。例如,在TPC-C和TPC-DS中,價格/性能的指標(biāo)是用每分鐘一個事務(wù)所用的美元數(shù)(tpm)(例如10美元/ 1000轉(zhuǎn)/分)表示。在LinkBench中,該指標(biāo)是每美元產(chǎn)生的峰值吞吐量。 在TPC-Pricing中提供了一種通用方法,通過綜合考慮價格的不同來源(包括硬件(購買價格)、軟件(許可證費用)、3年維護(hù)費用以及市場上合適的折扣)來計算SUT的定價配置。使用定價配置可以定義價格/性能指標(biāo)。
能耗指標(biāo):TPC在2007年提出能耗規(guī)范來計算SUT的能耗,它考慮了系統(tǒng)組件的功率及其環(huán)境(包括溫度,濕度和海拔高度)。TPC還提供被稱為能耗測量系統(tǒng)的軟件包以促進(jìn)其能耗規(guī)范的實施和能耗/性能指標(biāo)的定義。根據(jù)TPC基準(zhǔn)測試標(biāo)準(zhǔn),TPCx-HS使用TereSort作為示例工作負(fù)載來討論如何為大數(shù)據(jù)系統(tǒng)設(shè)計能耗指標(biāo)。TPC-E提出了一種能耗/性能指標(biāo),其測量每秒一個事務(wù)消耗功率的瓦特數(shù)(tps)(例如32瓦/ 10噸)。BigDataBench還提供能耗性能指標(biāo)用于計算MapReduce作業(yè)的每焦耳處理的數(shù)據(jù)量。類似地,SPEC也通過開發(fā)服務(wù)器效率評級工具(SERT)來計算單節(jié)點或多節(jié)點服務(wù)器的能耗。基于此工具,SPEC開發(fā)了一個名為SPECpower-ssj2008的基準(zhǔn)測試,它使用一個功率分析儀,一個溫度傳感器和一個控制器系統(tǒng)來測量系統(tǒng)能耗。
5.2 大數(shù)據(jù)系統(tǒng)性能參數(shù)的討論
在大數(shù)據(jù)系統(tǒng)上運行工作負(fù)載時,有三個原因使各種參數(shù)影響大數(shù)據(jù)性能。首先,大數(shù)據(jù)系統(tǒng)通常具有比傳統(tǒng)系統(tǒng)(如MPI)更復(fù)雜的軟件棧和層,因此有很多配置參數(shù)。其次,許多大數(shù)據(jù)系統(tǒng)支持多種編程語言,如C、Java和Python。程序的屬性在不同的語言中變化很大,因此引入了更多的配置參數(shù)。最后,在分布式和共享環(huán)境(例如Amazon Web Services等公共云)中執(zhí)行工作負(fù)載時,資源分配參數(shù)的設(shè)置(例如CPU和內(nèi)存資源的分配以及網(wǎng)絡(luò)資源的預(yù)留)也會影響工作負(fù)載的性能。
到目前為止,盡管人們?yōu)楦纳瓶蒲泻凸I(yè)中大數(shù)據(jù)系統(tǒng)的性能做出了許多努力,但我們回顧的大多數(shù)大數(shù)據(jù)基準(zhǔn)測試在測試時僅使用默認(rèn)參數(shù)設(shè)置。然而這不能保證公平的基準(zhǔn)測試,因為從程序代碼、輸入數(shù)據(jù)、資源屬性等方面來看,在不同系統(tǒng)上,工作負(fù)載性能參數(shù)的最佳組合也不同。隨著新的大數(shù)據(jù)基準(zhǔn)測試的開發(fā),基準(zhǔn)測試設(shè)計師需要認(rèn)識到性能參數(shù)及其影響,需要考慮如何使基準(zhǔn)測試公平而且不會失去根據(jù)被測系統(tǒng)來自定參數(shù)的自由。我們簡要總結(jié)了未來基準(zhǔn)測試中要考慮的重要性能參數(shù)(至少在作者們看來),具體如下:
系統(tǒng)配置參數(shù)。大數(shù)據(jù)系統(tǒng)中大量軟件棧和多種編程語言的使用會帶來大量的配置參數(shù)。例如,在Hadoop中,有三類基本的配置參數(shù)用于控制MapReduce作業(yè)的執(zhí)行:(1)作業(yè)中map和reduce任務(wù)的數(shù)量;(2)map和reduce任務(wù)中可用間隙的數(shù)量以及這些間隙的資源配置(即處理器的數(shù)量和存儲量);(3)數(shù)據(jù)傳輸機(jī)制,例如map任務(wù)的輸出是否在存儲之前被壓縮。上述參數(shù)的設(shè)置也可以稱為執(zhí)行計劃配置。在Hadoop中,用戶需要為其工作運行指定的執(zhí)行計劃參數(shù)(系統(tǒng)配置參數(shù)),而在一些其他系統(tǒng)(如Hive和Pig或某些數(shù)據(jù)庫引擎)中則可以自動生成執(zhí)行計劃配置。
除了系統(tǒng)配置參數(shù)之外,人們還提出了調(diào)度技術(shù)來提高M(jìn)apReduce工作在Hadoop相關(guān)系統(tǒng)上的性能。這些技術(shù)通過考慮三個性能參數(shù)來管理并發(fā)運行作業(yè)的執(zhí)行,以減少其總體完成時間:作業(yè)資源共享的公平性; map和reduce任務(wù)之間的依賴關(guān)系;作業(yè)執(zhí)行中的數(shù)據(jù)位置(在輸入數(shù)據(jù)所在處運行任務(wù))。此外,由于網(wǎng)絡(luò)帶寬比機(jī)器中的磁盤帶寬小得多,人們引入了一些技術(shù)來減少MapReduce作業(yè)的網(wǎng)絡(luò)負(fù)載和通信成本。這些技術(shù)通過耦合數(shù)據(jù)和虛擬機(jī)(VM)的位置來改善數(shù)據(jù)位置,或者關(guān)注于通過管理作業(yè)內(nèi)和作業(yè)間的傳輸活動來減少shuffling流量。
資源分配參數(shù)。當(dāng)數(shù)據(jù)中心中部署大數(shù)據(jù)系統(tǒng)時,計算和網(wǎng)絡(luò)資源由不同系統(tǒng)的工作負(fù)載共享。因此CPU和內(nèi)存資源的分配以及網(wǎng)絡(luò)資源的保留機(jī)制都是要考慮的性能參數(shù)。
瓶頸緩解參數(shù)。如今,在許多大數(shù)據(jù)系統(tǒng)中(例如Hadoop和數(shù)據(jù)存儲),作業(yè)的處理分為數(shù)百或數(shù)千個并行處理任務(wù)。因此瓶頸任務(wù)(即任務(wù)花費最長時間完成的任務(wù))會極大地影響系統(tǒng)的性能。針對這樣的問題,人們提出了許多方法來減輕瓶頸任務(wù)的影響,這些方法通常根據(jù)其考慮的性能參數(shù)分為三類:(1)解決瓶頸的特定硬件/軟件來源,如動態(tài)電壓和頻率調(diào)節(jié)(DVFS)、OS內(nèi)核和系統(tǒng)軟件; (2)提高并行度; (3)為所有任務(wù)提交冗余副本或只為掉隊任務(wù)重復(fù)提交冗余副本,然后使用其最快副本來減少其完成時間。
總結(jié)
在本文中,我們?nèi)婊仡櫫水?dāng)前開源大數(shù)據(jù)系統(tǒng)基準(zhǔn)測試集。首先,我們介紹了大數(shù)據(jù)系統(tǒng)和基準(zhǔn)測試集的基本概念,之后回顧了基準(zhǔn)測試核心技術(shù)(工作負(fù)載生成技術(shù),輸入數(shù)據(jù)生成技術(shù)以及評測指標(biāo)和性能參數(shù))。隨后,我們分別根據(jù)三種技術(shù)對基準(zhǔn)測試集進(jìn)行了分類。最后,考慮到大數(shù)據(jù)基準(zhǔn)測試集的不斷發(fā)展,本文還討論了亟待解決的開放性挑戰(zhàn)問題,以期推動大數(shù)據(jù)基準(zhǔn)測試集向著真正可信、可用和公平的方向發(fā)展。
-
開源
+關(guān)注
關(guān)注
3文章
3621瀏覽量
43508 -
大數(shù)據(jù)
+關(guān)注
關(guān)注
64文章
8952瀏覽量
139543
原文標(biāo)題:從技術(shù)上解讀大數(shù)據(jù)的應(yīng)用現(xiàn)狀和開源未來
文章出處:【微信號:AItists,微信公眾號:人工智能學(xué)家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論