YCSB分布式压测hbase

1 下载YCSB

curl -O --location https://github.com/brianfrankcooper/YCSB/releases/download/0.12.0/ycsb-0.12.0.tar.gz
tar xfvz ycsb-0.12.0.tar.gz
cd ycsb-0.12.0

提供的已编译好的版本支持hbase1.0,如果hbase版本高于1.0,需要自己手动编译

2 运行压测

本次压测的hbase版本是1.0.0

(1) 配置ycsb

  • 在hbase10-binding目录下新建conf目录,然后将hbase的hbase-site.xml拷贝进来

(2) 创建压测表

disable 'usertable'
drop 'usertable'
create 'usertable', 'family', {SPLITS => (1..n_splits).map {|i| "user#{1000+i*(9999-1000)/n_splits}"}}
---n_splits=(10 * number of regionservers)
  • 建表时需要预分区

(3) 加载数据

bin/ycsb load hbase10 -P workloads/workloada  -p table=usertable -p columnfamily=family -p threads=1000 -p recordcount=200000000 -s > logs/load.log

load 表示这是一次加载数据操作

hbase10指明了所用的数据库类型

threads=100 配置并发线程个数

-P指明了所用的配置文件的路径

-p 可以显示修改YCSB内置的默认配置,例如这里配置recordcount=20000000来覆盖之前说过的workloada中默认的recordcount=1000

-s一次加载数据或执行测试的过程实践很长,YCSB客户端需要定时(默认10s)发送状态信息

logs/ load.log表示结果日志写入位置,logs目录需要手动创建

(4) 执行压测

bin/ycsb run hbase10 -P workloads/workloada -threads 200 -p operationcount=20000000 -p table=usertable -p columnfamily=family -p measurementtype=timeseries -p  timeseries.granularity=2000  -s > logs/transaction-workloada1.log

猜你喜欢

转载自my.oschina.net/u/1188945/blog/1801151
今日推荐