圖8. Presto架構(gòu)
性能評測總結(jié)
通過對Hive、Impala、Shark、Stinger和Presto的評測和分析,總結(jié)如下:
1) 列存儲一般對查詢性能提升明顯,尤其是大表是一個包含很多列的表。例如,從Stinger(Hive 0.11 with ORCFile)VS Hive,以及Impala的Parquet VS Text file;
2) 繞開MR計算模型,省去中間結(jié)果的持久化和MR任務(wù)調(diào)度的延遲,會帶來性能提升。例如,Impala,Shark,Presto要好于Hive和Stinger,但這種優(yōu)勢隨著數(shù)據(jù)量增加和查詢變復(fù)雜而減弱;
3) 使用MPP數(shù)據(jù)庫技術(shù)對連接查詢有幫助。例如,Impala在兩表,多表連接查詢中優(yōu)勢明顯;
4) 充分利用緩存的系統(tǒng)在內(nèi)存充足的情況下性能優(yōu)勢明顯。例如,Shark,Impala在小數(shù)據(jù)量時性能優(yōu)勢明顯;內(nèi)存不足時性能下降嚴(yán)重,Shark會出現(xiàn)很多問題;
5) 數(shù)據(jù)傾斜會嚴(yán)重影響一些系統(tǒng)的性能。例如,Hive、Stinger、Shark對數(shù)據(jù)傾斜比較敏感,容易造成傾斜;Impala受這方面的影響似乎不大;
對于Hive、Impala、Shark、Stinger和Presto這五類開源的分析引擎,在大多數(shù)情況下,Imapla的綜合性能是最穩(wěn)定的,時間 性能也是最好的,而且其安裝配置過程也相對容易。其他分別為Presto、Shark、Stinger和Hive。在內(nèi)存足夠和非Join操作情況 下,Shark的性能是最好的。
總結(jié)與展望
對大數(shù)據(jù)分析的項目來說,技術(shù)往往不是最關(guān)鍵的,關(guān)鍵在于誰的生態(tài)系統(tǒng)更強,技術(shù)上一時的領(lǐng)先并不足以保證項目的最終成功。對于Hive、 Impala、Shark、Stinger和Presto來講,最后哪一款產(chǎn)品會成為事實上的標(biāo)準(zhǔn)還很難說,但我們唯一可以確定并堅信的一點是,大數(shù)據(jù)分 析將隨著新技術(shù)的不斷推陳出新而不斷普及開來,這對用戶永遠(yuǎn)都是一件幸事。舉個例子,如果讀者注意過下一代Hadoop(YARN)的發(fā)展的話就會發(fā)現(xiàn), 其實YARN已經(jīng)支持Map-Reduce之外的計算范式(例如Shark,Impala等),因此將來Hadoop將可能作為一個兼容并包的大平臺存 在,在其上提供各種各樣的數(shù)據(jù)處理技術(shù),有應(yīng)對秒量級查詢的,有應(yīng)對大數(shù)據(jù)批處理的,各種功能應(yīng)有盡有,滿足用戶各方面的需求。
除了Hive、Impala、Shark、Stinger和Presto這樣的開源方案外,像Oracle,EMC等傳統(tǒng)廠商也沒在坐以待斃等著自己的市 場被開源軟件侵吞。像EMC就推出了HAWQ系統(tǒng),并號稱其性能比之Impala快上十幾倍,而Amazon的Redshift也提供了比Impala更 好的性能。雖然說開源軟件因為其強大的成本優(yōu)勢而擁有極其強大的力量,但是傳統(tǒng)數(shù)據(jù)庫廠商仍會嘗試推出性能、穩(wěn)定性、維護(hù)服務(wù)等指標(biāo)上更加強大的產(chǎn)品與之 進(jìn)行差異化競爭,并同時參與開源社區(qū)、借力開源軟件來豐富自己的產(chǎn)品線、提升自己的競爭力,并通過更多的高附加值服務(wù)來滿足某些消費者需求。畢竟,這些廠 商往往已在并行數(shù)據(jù)庫等傳統(tǒng)領(lǐng)域積累了大量的技術(shù)和經(jīng)驗,這些底蘊還是非常深厚的??偟膩砜?,未來的大數(shù)據(jù)分析技術(shù)將會變得越來越成熟、越來越便宜、越來 越易用;相應(yīng)的,用戶將會更容易更方便地從自己的大數(shù)據(jù)中挖掘出有價值的商業(yè)信息。