This benchmark is designed to run with HBase and Cassandra and automates the steps in benchmark to make sure the result is reproducible
- HBase or Cassandra installed. The benchmark is designed to run on dedicated cluster.
- Dedicated hardware. AWS can have noisy neighbours and thus is not a reliable place for benchmark, unless you are using dedicated instances.
- Maven. YCSB depends on maven to run
- YCSB Repo here
Clone YCSB and download code from this repo, place into the same YCSB root folder. So you should see bench.sh under your YCSB folder
Place hbase-site.xml (Usually found under /etc/hbase/hbase.conf/hbase-site.xml) into ./YCSB/hbase10/conf
Note: You'll likely have to create the conf directory by yourself.
In HBase shell ($>hbase shell) run the follwoing command to create tables
create 'usertable', 'cf', {SPLITS => (1..200).map {|i| "user#{1000+i*(9999-1000)/200}"}, MAX_FILESIZE =>
4*1024**3}
Run ./bench_hbase.sh to start benchmark Results will be logged in individual log files
For more details, see here: https://github.com/brianfrankcooper/YCSB/tree/master/hbase10
Open bench_cassandra.sh, edit "hosts" (line 9) variable. Replace it with your cassandra instance's IP or hostname
Run cqlsh host to get into cql shell. Then run
cqlsh> create keyspace ycsb
WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 3 };
cqlsh> USE ycsb;
cqlsh> create table usertable (
y_id varchar primary key,
field0 varchar,
field1 varchar,
field2 varchar,
field3 varchar,
field4 varchar,
field5 varchar,
field6 varchar,
field7 varchar,
field8 varchar,
field9 varchar);
Run ./bench_cassandra.sh to start benchmark Results will be logged in individual log files.
For more details, see here: https://github.com/brianfrankcooper/YCSB/tree/master/cassandra
Reach out to me via message or leave a comment. I'll help you out!