Hadoop上時實類SQL查詢系統對比

轉載請註明做者與出處
做者:martin_li
網址:http://my.oschina.net/Senger/blog/180140

之前只用過Hive與impala兩個類SQL查詢系統,最近又將Hortonworks開源的Stinger與Apache的Drill作了些調研。累死累活搞了一天的資料,頭都大了。爲了記念我那逝去的腦細胞,特將這些信息整理出來。 git

因爲調查時間比較短(一天的時間都頭暈眼花了,再長點估計我就要過勞死了),所寫之處不免會有差錯,歡迎你們指正 github

整體來講雖然impala、stinger、drill三個系統都是類SQL實時查詢系統,可是它們的側重點徹底不一樣。並且它們也不是爲了替換Hive而生,hive在作數據倉庫時仍是頗有價值的。 apache

目前來講只有impala比較成熟(家標稱要使用CDH版本hadoop,若是要使用apache的,要作好測試的內心準備)。 架構

其它兩個系統還都處理孵化狀態,可是前景很是不錯。 app

Impala

這個系統是Cloudera開源的,時間大約是在12年下半年。雖然到如今才一年的時間可是已經有不少人在使用。社區也比較活躍,你們能夠在github上面看到項目的開發人員與代碼提交狀況(地址:https://github.com/cloudera/impala)。我的感受開發者雖然有其它幾個公司,可是仍是以cloudera爲主。這樣也造就了impala開發的比較快速,雖然到如今才一年左右的時間,可是impala已經能夠很穩定的運行。 框架

impala主要是爲hdfs與hbase數據提供實時SQL查詢。它是根據google的dremel論文實現的一套分佈式系統,自用戶提交的SQL開始都是基於自身的分析器與執行器。下圖是其架構圖 分佈式

images/image1.jpeg(圖片來源自impala安裝使用說明書) oop

由 於徹底脫離了M/R技術,自身根據HDFS的文件分佈來調整計算,因此速度較Hive有很大提高。根據我我的使用部分TPC基準測(爲何是部分?沒理 由,我只選了一部分SQL來跑),impala雖然性能提高不像Cloudera標稱的達到hive的一百倍,可是在比較複雜的狀況下達到40-70倍性 能提升仍是有的。 性能

就平常使用來講,標稱是支持大部分SQL-92標準(我也不清楚這個標準到底有多少,專業的童鞋給點解讀唄!!)。根據我 是測試,平常用的SQL都沒有問題。而且impala支持JDBC與ODBC的鏈接,這對於咱們的使用也是很必要的,基於此特色咱們能夠開發對應業務系統 的UI部分,從而不用要求業務人員本身下SQL了(這是爲數很少的展示工做成果的時候了)。 測試

其次就是impala支持的文件格式,咱們存取 數據的時候確定要應景的選擇壓縮與否以及文件的存儲格式。impala支持經常使用的Text、Sequence、avro格式,壓縮方面支持Snappy、 bzip、gzip以及deflate壓縮應該能夠知足咱們大部分的使用場景了。

而最棒的是它的UDF功能能夠直接使用hive的udf庫,而不須要修改任何代碼,使用hive的童鞋能夠慶祝了,不少任務不須要任何改變便可平滑切換impala。不過由於impala使用的是C開發的,因此impala仍是鼓勵你們寫一個c下面的udf來提升性能。

drill

開源時間跟impala差很少,只不過屬於Apache,。這個系統的目標很宏大--抽象全部數據源,作成統一接口。底層支持hbase、mongoDB、HDFS、Cassandra等數據源。

它的數據接口都是插件化,理論上支持各類查詢語言,SQL天然也不例外,不過目前這個系統仍是Apache的一個孵化項目,不少功能還沒有完成與穩定。可是能夠預見,這個系統若是完成是頗有影響力的。下圖爲drill的架構圖。

(圖片來源https://cwiki.apache.org/confluence/display/DRILL/High-level+Architecture


Stinger

Hortonworks開源的一個實時類SQL查詢系統,也是聲稱能夠提高較hive 100倍的速度(悲崔的hive,都拿它來當反面教材)。目前處於其計劃中三個階段的最後一個階段。

綜合來看Hortonwork作的事是在hive等分析系統的現有基上加了一個優化層,全部的事都要通過它的優化層Tez(此框架是基於Yarn)來處理,以減小沒必要要的工做以及資源開銷。雖然它也對HIVE進行了不少的優化與增強,可是這個效果就要看子系統Tez的表現的了。Tez目前也是apache的孵化項目,Stringer若是要穩定能夠商用依然還有不少路要走。

從下面的示意圖你們能夠了解Tez所處的位置。

http://hortonworks.com/wp-content/uploads/2013/10/hadoopstack.png(圖片來源:http://hortonworks.com/hadoop/tez/

相關文章
相關標籤/搜索