YCSB 對HBase 性能測試


    我認真的在想,關在牢里面的人,不一定比放在外面的人壞。 -- 三毛

    這篇文章放草稿箱快兩個多月了,今天突然被告知,要換方向,看了近三個月的HBase就這樣別了,很突然。

  剛開始裝上HBase系統,再還沒什么應用的情況下,就不知拿着它干嘛,好吧,測試一下。

    HBase的版本是:0.90.5 Hadoop的版本是:1.0.0,分布式部署,一共四個節點。

  測試工具是:YCSB,yahoo cloud system benchmark。專用於對各種分布式數據庫測試的工具。可以在這個網站上下載:https://github.com/brianfrankcooper/YCSB, 個人理解,YCSB更多的是用來測試不同分布式數據庫的,如cassandra,hypertable,HBase,考察不同數據庫的相關性能。

      下載測試工具之后,我使用的版本是:ycsb-0.1.4

1 tar xfvz ycsb-0.1.4
2 cd ycsb-0.1.4

      開始配置測試環境
      將hbase中的jar包拷貝到hbase-binding/lib文件夾下,將hbase中的/conf/hbase-site.xml拷貝到/hbase-binding/conf下。在hbase中創建指定的表:usertable。測試默認的是要操作這樣的一張表,需要這樣的列族,不一定是三個。

1 create 'usertable','f1','f2','f3'

      測試過程分為兩個階段,首先是加載數據,其次是執行事務。
      加載數據,進入ycsb的bin目錄,開始輸入命令:

1 ./ycsb load hbase -P ../workloads/workloada -p threads=10 -p columnfamily=f1 -p recordcount=10000 -s > load.dat

    命令分析:load:表明為加載數據測試。
    -P:指定配置文件
     workloads/workloada: 為配置文件。This workload has a mix of 50/50 reads and writes
     -p:參數
     threads:the number of client threads

     加載完數據后,顯示的部分結果如下:

1 [OVERALL], RunTime(ms), 2295.0
2  [OVERALL], Throughput(ops/sec), 4357.298474945534
3  [INSERT], Operations, 10000
4  [INSERT], AverageLatency(us), 198.2618
5  [INSERT], MinLatency(us), 9
6  [INSERT], MaxLatency(us), 788883
7  [INSERT], 95thPercentileLatency(ms), 0
8  [INSERT], 99thPercentileLatency(ms), 0
9  [INSERT], Return=0, 10000

    加載完數據之后,開始執行事物,主要有read 和 update操作。執行命令如下:

 ./ycsb run hbase -P ../workloads/workloada -threads 10 -p measurementtype=timeseries -p 
columnfamily=f1 -p timeseries.granularity=2000 > transactions.dat

    命令的具體含義跟上條大體一致,可以自己參考網站的文檔,合理的配置。
    命令執行完,顯示的部分結果:

 1 [OVERALL], RunTime(ms), 541.0
 2  [OVERALL], Throughput(ops/sec), 1848.4288354898335
 3  [UPDATE], Operations, 502
 4  [UPDATE], AverageLatency(us), 4569.788844621514
 5  [UPDATE], MinLatency(us), 56
 6  [UPDATE], MaxLatency(us), 373970
 7  [UPDATE], Return=0, 502
 8  [UPDATE], 0, 4569.788844621514
 9  [READ], Operations, 498
10  [READ], AverageLatency(us), 4618.516064257028
11  [READ], MinLatency(us), 742
12  [READ], MaxLatency(us), 379287
13  [READ], Return=0, 498
14  [READ], 0, 4618.516064257028 

    這樣,大概的一個測試過程就完成了,這只是簡單的按照ycsb的文檔使用了下ycsb工具,我覺的最關鍵的是從使用ycsb測試之后,得到的數據中進行合理的分析,去了解HBase這個系統。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM