PerformanceEvaluation是HBase自帶的性能測試工具,該工具提供了順序讀寫、隨機讀寫、掃描等性能測試功能。本文簡要介紹HBase PerformanceEvaluation的使用方法。
准備工作
1HDFS正常啟動:start-dfs.sh
2Mapreduce\\yarn正常啟動: start-yarn.sh
3HBase正常啟動: start-hbase.sh
運行
1、進入hbase bin目錄:cd {mr}/hbase/bin;
2、輸入hbase org.apache.hadoop.hbase.PerformanceEvaluation 查看PE幫助信息,如下圖:
寫操作
1) 順序寫:sequentialWrite
例如,預分區100 regions,100線程並發,順序寫1億條數據:
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=1000000 --presplit=100 sequentialWrite 100
注意事項:
a. hbase PE默認使用mapreduce作業進行讀寫掃描數據,如果使用多線程/客戶端並發來代替mapreduce作業,需要加上選項 --nomapred
b. 設置每個客戶端處理多少行記錄,使用參數 --rows,例如 --rows=1000000,即每個線程/客戶端處理1000000行記錄;
c. --presplit參數,只有在寫數據時使用,讀表時使用參數--presplit,會導致之前寫的表數據被刪除;
d. 最后一個參數100即為100個線程/客戶端並發。
2) 隨機寫:randomWrite
例如,隨機寫1億條數據:
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=1000000 --presplit=100 randomWrite 100
讀操作
1) 順序讀:sequentialRead
例如,順序讀1億條數據:
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=1000000 sequentialRead 100
2) 隨機讀:
例如,隨機讀1億條數據:
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=100000 randomRead 100
掃描操作
掃描:scan\\ scanRange10\\ scanRange100\\ scanRange1000\\scanRange10000
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=1000000 scan 100
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=100000 scanRange10 100
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=10000 scanRange100 100
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=1000 scanRange1000 100
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=100 scanRange10000 100
注意事項:
Hbase讀\\掃描表數據,會優先讀取內存數據,所以在寫表操作結束后,可手動對表進行一次flush操作,以此清空內存中memstore數據;並且每次讀\\掃描測試前,重啟hbase,把緩存清掉。