Hypertable對決HBase!誰是云開源利器 |
發(fā)布時間: 2012/7/27 14:18:40 |
HBase(Hadoop Database)是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),利用HBase技術可在廉價PC Server上搭建起大規(guī)模結構化存儲集群,Hypertable則是搜索引擎公司Zvents以Google發(fā)布的BigTable為基礎,推出的一款開源分布式數(shù)據(jù)存儲系統(tǒng)。這兩類分布式存儲系統(tǒng)通常被用于新興互聯(lián)網(wǎng)架構或者云計算、云存儲架構中。 兩者都是模仿谷歌BigTable數(shù)據(jù)庫設計而成,主要區(qū)別是Hypertable依靠C++語言實現(xiàn),而HBase則基于Java編寫。我們最近做了一項實驗,比較0.9.5.5版本的Hypertable和0.90.4版本的HBase運行zookeeper時的性能,結論是:Hypertable在吞吐量測試中的成績是HBase的2倍。而且HBase在410億和1670億數(shù)據(jù)測試中存在數(shù)據(jù)溢出問題。不過在隨機讀取測試中這兩個系統(tǒng)的測試結果基本相同。 測試環(huán)境介紹 本次測試的環(huán)境是通過千兆網(wǎng)絡連在一起的16臺服務器。 本機的配置是: OS:CentOS 6.1 CPU:兩顆AMD C32六核心2.1GHz 內(nèi)存:24GB 1333 MHz DDR3 磁盤:四塊 西部數(shù)據(jù)RE4-GP WD2002FYPS(2TB SATA ) 服務器test 01上運行分布式文件系統(tǒng)、分布式存儲系統(tǒng)Hypertable和HBase的主節(jié)點,在test04-test15上運行數(shù)據(jù)節(jié)點和機器配置的有效RAM, ZooKeeper和Hyperspace的副本運行在test01-test03上,測試中表配置使用快速壓縮,并且使用Bloom過濾器按一定規(guī)則進行過濾。我們查閱了介紹如何設置并完成此次測試的整個Hypertable VS HBase II測試報告,盡可能調(diào)整HBase實現(xiàn)最佳性能和配置細節(jié)。 隨機寫入測試 在隨機寫入測試中,Hypertable和HBase分別測試寫入4個不同的5TB數(shù)據(jù)。使用值大小分別為10000、1000、100和10。其中關鍵一步是將20字節(jié)作為隨機寫入的零填充來格式化。 以下圖表為測試結果 下表提供了詳細的性能測試結果 從圖中我們可以看出HBase在410億以及1670億的關鍵測試中由于HBase的RegionServers并發(fā)模式失敗而寫入異常。無論如何配置,當RegionServer產(chǎn)生垃圾數(shù)據(jù)的速度超過Java垃圾收集器回收垃圾數(shù)據(jù)的速度就會發(fā)生上面的異常情況。雖然我們可以設計一個垃圾數(shù)據(jù)回收計劃來克服這些問題,不過這樣的話會在運行時給性能帶來沉重的代價。 隨機讀取測試 此次測試利用一組隨機讀取請求通過查詢吞吐量的方法來測試。每個系統(tǒng)跑兩個不同的測試,一個測試采用Zipfian分布,另一個測試采用均勻分布。同時,對插入的鍵大小固定為20字節(jié),值大小則固定為1KB。鍵取值范圍來自ASCII中的整數(shù),每次查詢測試返回一對鍵值。在每個系統(tǒng)上分別跑兩次測試,一次加載5TB的數(shù)據(jù),另一次加載0.5TB的數(shù)據(jù)。這樣能夠測量出每個系統(tǒng)下內(nèi)存到磁盤性能系數(shù)的高低。在加載5TB測試中共載入4,901,960,784的鍵值,而加載0.5TB測試中共載入490,196,078的鍵值。測試客戶端跑了128個進程(總共為512進程),每個進程都可以在任何時間得到512次查詢,這意味著每個測試都發(fā)出1億次查詢。 Zipfian分布式環(huán)境測試 在這個測試中,我們布置了一個Zipfian分布環(huán)境,發(fā)現(xiàn)當指數(shù)的值為0.8時,20%的鍵利用了80%的時間來實現(xiàn)。所以我們在測試中將Hypertable查詢緩存配置為2GB,同時為了使HBase保持良好性能,將HBase的block cache和memstore限制使用默認值。測試結果見下圖 下表提供了詳細的性能測試結果
導致性能差異主要原因是Hypertable提供了查詢緩存。當然用HBase也可以實現(xiàn)查詢緩存,但它是HBase的子系統(tǒng)而且這個子系統(tǒng)生成了很多垃圾。雖然用HBase查詢緩存會提高HBase測試性能,但同時也帶來了一些弊端,尤其是在超大規(guī)模寫入以及超大單元計算的混合工作負載下。 在測試中出現(xiàn)了一個有趣的現(xiàn)象,在我們增加了兩個系統(tǒng)緩存塊的大小后對性能產(chǎn)生了不利影響。事實上系統(tǒng)內(nèi)有大量閑置CPU計算能力以維持減輕壓力需求,通過消除高速緩存塊來存儲未壓縮塊,同時依靠操作系統(tǒng)的文件緩存可獲取更好的性能,因為這樣可以在內(nèi)存中容納更多的數(shù)據(jù)集。 均勻分布測試環(huán)境 查詢用的鍵都遵循均勻分布的原則,下圖為測試結果 下表提供了詳細的性能測試結果
在均勻分布測試中HBase的性能接近Hypertable,這應該是磁盤IO瓶頸以及測試中產(chǎn)生一些垃圾數(shù)據(jù)導致。 結論 在過去5年,Hypertable社區(qū)一直在致力于努力完善產(chǎn)品。得到這些結果我們很開心,我們可以繼續(xù)進行效能改善項目,目標是將Hypertable構建成為大數(shù)據(jù)領域高性能、高擴展性的數(shù)據(jù)庫解決方案。 本文出自:億恩科技【m.1tcdy.com】 |