摘要:Hadoop平臺(tái)是apche下的一個(gè)開(kāi)源大數(shù)據(jù)平臺(tái),具有分布性、虛擬化、高可靠性、高可伸縮性、通用性等特點(diǎn)。Hadoop平臺(tái)發(fā)展至今,集成組件已從1.0發(fā)展到2.0。從Hadoop體系結(jié)構(gòu)入手,分析了Hadoop 平臺(tái)1.0和2.0平臺(tái)的基準(zhǔn)測(cè)試性能并進(jìn)行了對(duì)比。研究了testdfsIO、yarn、hive的基準(zhǔn)測(cè)試,通過(guò)對(duì)升級(jí)后平臺(tái)的基準(zhǔn)測(cè)試,分析了2.0的優(yōu)勢(shì),為集成Hadoop平臺(tái)提供參考。
關(guān)鍵詞:大數(shù)據(jù);Hadoop;testdfsIO;yarn;hive;性能對(duì)比
DOIDOI:10.11907/rjdk.143775
中圖分類(lèi)號(hào):TP306
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2015)001003003
作者簡(jiǎn)介作者簡(jiǎn)介:張新玲(1983-),女,浙江杭州人,浪潮電子信息產(chǎn)業(yè)股份有限公司系統(tǒng)軟件部高級(jí)工程師,研究方向?yàn)樵朴?jì)算、大數(shù)據(jù)。
0 引言
隨著移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、社交網(wǎng)絡(luò)等技術(shù)的興起,全球數(shù)據(jù)量迅猛增長(zhǎng),大數(shù)據(jù)(Big Data)時(shí)代已經(jīng)來(lái)臨。大數(shù)據(jù)的定義有多種提法,IBM認(rèn)為大數(shù)據(jù)具備規(guī)模性(Volume)、多樣性(Variety)和高速性(Velocity)3個(gè)特征:規(guī)模性指數(shù)據(jù)量巨大,量級(jí)達(dá)到TB級(jí)及PB級(jí);多樣性指數(shù)據(jù)類(lèi)型繁多,包括結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù);高速性指數(shù)據(jù)創(chuàng)建、處理和分析的速度持續(xù)加快。Hadoop是一個(gè)開(kāi)源大數(shù)據(jù)平臺(tái),已成為大數(shù)據(jù)的代名詞。短短幾年,Hadoop從一種邊緣技術(shù)成為事實(shí)上的標(biāo)準(zhǔn),Hadoop 逐漸通過(guò)開(kāi)源的分布式計(jì)算框架成為各軟件開(kāi)發(fā)團(tuán)隊(duì)首選的云計(jì)算平臺(tái)。
Hadoop平臺(tái)軟件系統(tǒng)具有分布性、虛擬化、高可靠性、高可伸縮性、通用性等特點(diǎn),在軍事、教育、政府、金融等各個(gè)領(lǐng)域都有應(yīng)用。在這樣的背景下,研究Hadoop平臺(tái)下的基準(zhǔn)測(cè)試工作具有重要現(xiàn)實(shí)意義,本文研究的是hadoop平臺(tái)1.0和2.0的基準(zhǔn)項(xiàng)性能測(cè)試對(duì)比。
1 研究?jī)?nèi)容
Hadoop平臺(tái)下的基準(zhǔn)測(cè)試主要包括Hdfs的讀寫(xiě)、Yarn的執(zhí)行情況;Hive的基本功能包括簡(jiǎn)單查詢(xún)、表連接查詢(xún)、插入操作、分組查詢(xún)和map查詢(xún); TestDFSIO基準(zhǔn)測(cè)試、Yarn基準(zhǔn)測(cè)試、Hive基準(zhǔn)測(cè)試比較研究。采用hadoop自帶的測(cè)試包hadoop-test.jar中的TestDFSIO方法,分別執(zhí)行3次讀寫(xiě)操作。
2 TestDFSIO基準(zhǔn)測(cè)試比較
2.1 單個(gè)1G文件讀寫(xiě)測(cè)試
測(cè)試采用Hadoop自帶的測(cè)試包hadoop-test.jar中的TestDFSIO方法,分別執(zhí)行3次讀寫(xiě)操作,測(cè)試結(jié)果對(duì)比如表2、表3所示。
2.2 單個(gè)200G文件讀寫(xiě)測(cè)試
測(cè)試采用Hadoop自帶的測(cè)試包hadoop-test.jar中的TestDFSIO方法。
2.3 10個(gè)1G文件讀寫(xiě)測(cè)試
測(cè)試采用Hadoop自帶的測(cè)試包hadoop-test.jar中的TestDFSIO方法。
2.4 10個(gè)200G文件讀寫(xiě)測(cè)試
測(cè)試采用Hadoop自帶的測(cè)試包hadoop-test.jar中的TestDFSIO方法。
3 Yarn基準(zhǔn)測(cè)試比較
3.1 使用Wordcount統(tǒng)計(jì)輸入數(shù)據(jù)中每個(gè)單詞的出現(xiàn)次數(shù)
輸入數(shù)據(jù)使用Hadoop RandomWriter產(chǎn)生的random data, 在yarn上運(yùn)行RandomWriter,會(huì)啟動(dòng)一個(gè)MapReduce job, 每個(gè)節(jié)點(diǎn)生成1G數(shù)據(jù)共8G。
Wordcount進(jìn)行數(shù)據(jù)統(tǒng)計(jì),在Hadoop2.0平臺(tái)與Hadoop1.0平臺(tái)上的測(cè)試時(shí)間分別如表10所示。
3.2 使用Sort對(duì)8GB數(shù)據(jù)進(jìn)行排序
Sort測(cè)試是Hadoop自帶的排序測(cè)試,輸入數(shù)據(jù)使用Hadoop RandomTextWriter生成8G數(shù)據(jù)。
3.3 使用Terasort對(duì)1TB數(shù)據(jù)進(jìn)行排序
TeraSort是由微軟的數(shù)據(jù)庫(kù)專(zhuān)家Jim Gray創(chuàng)建的標(biāo)準(zhǔn)benchmark,輸入數(shù)據(jù)由Hadoop TeraGen產(chǎn)生,生成1TB數(shù)據(jù)。
4 Hive基準(zhǔn)測(cè)試比較
本次hive測(cè)試生成兩個(gè)表:Rankings和Uservisits表,Rankings表大小為1GB共11 999 999條,Uservisits表大小20GB共99 999 995條。Rankings表的表結(jié)構(gòu)為:
hive> desc rankings;
OK
pageurl string None
pagerank int None
avgduration int None
Time taken: 0.12 seconds, Fetched: 3 row(s)
Uservisits表的表結(jié)構(gòu)為:
hive> desc uservisits;
OK
sourceip string None
desturl string None
visitdate string None
adrevenue double None
useragent string None
countrycode string None
languagecode string None
searchword string None
duration int None
Time taken: 0.128 seconds, Fetched: 9 row(s)
4.1 簡(jiǎn)單查詢(xún)操作
以pageurl字段作為條件,從Rankings表中單條查詢(xún)出結(jié)果,語(yǔ)句為:
select * from rankings where pageurl='wyhajvmhqmtngawxpzkkjxkjoxzfecznoklgkcgbdaiaxy
gpqtohcrtakdebgwwpouzkjnplnqzjyqauevchrs';
測(cè)試結(jié)果見(jiàn)表13。
4.2 簡(jiǎn)單連接查詢(xún)操作
通過(guò)Rankings表中的pageURL和Uservisits表中的descURL進(jìn)行連接操作,再根據(jù)Rankings中的pageURL作為限制條件進(jìn)行查詢(xún),語(yǔ)句為:
select R.pageurl sourceIP,visitDate from rankings R
JOIN uservisits UV ON (R.pageURL=UV.destURL)
AndR.pageurl='wyhajvmhqmtngawxpzkkjxkjoxzfecznoklg kcgbdaiaxygpqtohcrtakdebgwwpouzkjnplnqzjyqauevchrs';
測(cè)試結(jié)果見(jiàn)表14。
4.3 插入操作
創(chuàng)建一個(gè)與Rankings表結(jié)構(gòu)相同的表Rankingsless,從Rankings表中根據(jù)pageRank排序得到前40條數(shù)據(jù)插入到Rankingsless表中,語(yǔ)句為:
建表語(yǔ)句:CREATE EXTERNAL TABLE rankingsless (pageURL STRING, pageRank INT, avgDuration INT)STORED AS SEQUENCEFILE;
插入語(yǔ)句:insert overwrite table rankingsless select * from rankings order by pageRank desc limit 40;
測(cè)試結(jié)果見(jiàn)表15。
4.4 分組操作(group by)
對(duì)Rservisits表進(jìn)行操作,根據(jù)sourceIP進(jìn)行分組,查詢(xún)出sourceIP和 SUM(adRevenue),然后插入到新建的表Uservisits_aggre中,命令:
建表語(yǔ)句:CREATE TABLE uservisits_aggre ( sourceIP STRING, sumAdRevenue DOUBLE) STORED AS SEQUENCEFILE ;
分組操作語(yǔ)句:INSERT OVERWRITE TABLE uservisits_aggre SELECT sourceIP, SUM(adRevenue) FROM uservisits GROUP BY sourceIP;
測(cè)試結(jié)果對(duì)比見(jiàn)表16。
4.5 map連接操作
采用map連接方式對(duì)Rankingsless和Rankings進(jìn)行連接,進(jìn)行統(tǒng)計(jì)運(yùn)算,語(yǔ)句為:
select /*+ MAPJOIN(rankingsless) */ count(*) from uservisits U JOIN rankingsless R ON U.destURL=R.pageURLandR.pageurl='wyhajvmhqmtngawxpzkkjxkjoxzfecznoklgkcgbdaiaxygpqtohcrtakdebgwwpouzkjnplnqzjy qauevchrs';
測(cè)試結(jié)果見(jiàn)表17。
5 結(jié)語(yǔ)
本次實(shí)驗(yàn)基于Hadoop平臺(tái)2.X的基準(zhǔn)測(cè)試與Hadoop1.0平臺(tái)的基準(zhǔn)測(cè)試對(duì)比,可以發(fā)現(xiàn)在新一代的Hadoop平臺(tái)下,Hadoop2.0有11項(xiàng)測(cè)試優(yōu)于Hadoop1.0平臺(tái),其它5項(xiàng)測(cè)試時(shí)間相差不多,整體情況來(lái)看,Hadoop2.0性能要優(yōu)于Hadoop1.0。
參考文獻(xiàn):
[1] 林清瀅.基于Hadoop 的云計(jì)算模型[J]. 現(xiàn)代計(jì)算機(jī), 2010(5)148150.
[2] http://hadoop.ahache.org/.
[3] 劉鵬,黃宜華,陳衛(wèi)衛(wèi).實(shí)戰(zhàn)Hadoop開(kāi)啟通向云計(jì)算的捷徑[M].北京:電子工業(yè)出版社,2011.
[4] 鄧自立. 云計(jì)算中的網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì)和Hadoop 平臺(tái)研究[D]. 合肥:中國(guó)科學(xué)技術(shù)大學(xué),2009.
[5] TOM WHITE.Hadoop權(quán)威指南[M]. 曾大聃,周傲英,譯.北京:清華大學(xué)出版社, 2010.
[6] TOM WHITE.Hadoop:the.definitive guide[M].Manning,2014.
[7] 張為民,唐劍鋒,羅治國(guó),等.云計(jì)算——深刻改變未來(lái)[M].北京:科學(xué)出版社,2009.
[8] 劉鵬.云計(jì)算[M].第2 版. 北京:電子工業(yè)出版社,2011.
[9] 李國(guó)杰.大數(shù)據(jù)研究的科學(xué)價(jià)值[J].中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊,2010(9):3336.
[10] 鄧自力.云計(jì)算中的網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì)和hadoop平臺(tái)研究[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2009.
[11] 冷先剛.軟件測(cè)試模型與方法研究[D].武漢:武漢理工大學(xué), 2009.
[12] 帥丹.分布式系統(tǒng)測(cè)試的難點(diǎn)與分析[J] .程序員,2010 (8):100105.