Hbase + PostgreSQL测试
基本信息
Hbase与PG测试使用YCSB
压力测试工具
采用21w行数据+21w操作数来最大化模拟20G数据场景
测试方法
HBASE
-
首先下载
YCSB
,解压 -
接下来创建测试数据库
hbase shell
命令打开shell命令行hbase(main):001:0> n_splits = 20 # HBase recommends (10 * number of regionservers) hbase(main):002:0> create 'usertable', 'cf', {SPLITS => (1..n_splits).map {|i| "user#{1000+i*(9999-1000)/n_splits}"}}
-
把hbase的conf目录下的|$HBASE_HOME/conf/hbase-site.xml(比如我本机是/usr/local/hbase/conf/hbase-site.xml)复制到我们下载的YCSB中的hbase14下的conf文件夹中
-
接下来装载数据
$ ./bin/ycsb load hbase14 -P workloads/workloada -p table=usertable -p columnfamily=cf -p recordcount=210000 -p operationcount=210000 -p measurementtype=hdrhistogram -p hdrhistogram.fileoutput=true -p hdrhistogram.output.path=/Users/laijie/ -threads 50 -s # 注意这里面的path更换为本机可以存放文件的目录,并且注意这个文件等会还会用
-
装载好之后开始跑测试
$ ./bin/ycsb run hbase14 -P workloads/workloada -p table=usertable -p columnfamily=cf -p recordcount=210000 -p operationcount=210000 -p measurementtype=hdrhistogram -p hdrhistogram.fileoutput=true -p hdrhistogram.output.path=/Users/laijie/ -threads 50 -s # 注意这里面的path更换为本机可以存放文件的目录,并且注意这个文件等会还会用
这里面使用的是workloada,想要测试其他情况更换参数即可
- Workload A:
- 重更新,50% 读 50% 写,例如 session sotre
- Workload B:
- 读多写少,95% 读 5% 写,例如 photo tagging
- Workload C:
- 只读:100% 读,例如 user profile cache
- Workload D:
- 读最近更新:这个 workload 会插入新纪录,越新的纪录读取概率越大,例如:user status updates
- Workload E:
- 小范围查询:这个 workload 会查询小范围的纪录,而不是单个纪录,例如:threaded conversations
- Workload F:
- 读取-修改-写入:这个 workload 会读取一个纪录,然后修改这个纪录,最后写回,例如:user database
跑完之后测试结果如下
2019-08-22 10:56:17:879 10 sec: 137084