使用ycsb测试cassandra
參考?https://github.com/cloudius-systems/osv/wiki/Benchmarking-Cassandra-and-other-NoSQL-databases-with-YCSB
https://github.com/brianfrankcooper/YCSB/tree/master/cassandra ?創建 表頭
https://gist.github.com/pbailis/3978273 設置field參數 長度和個數
?
?
?
啟動和 redis類似,只不過,參數不同。
比如redis指定主機的參數是 -p "redis.host=127.0.0.1"?
而cassandra 是 -p hosts=127.0.0.1
這里hosts為什么是復數,應該是因為cassandra可以有多個服務節點。
?
在運行測試之前,必須先運行cassrandra客戶端手動創建供ycsb使用的數據庫和表。
數據庫名叫ycsb,表名叫usertable,按照上面的參考進行。
create keyspace ycsb WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 1 }; USE ycsb; ? 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);或 create table usertable (y_id varchar primary key,field0 varchar);
這樣在load時需要指定 -p fieldcount=1 ALTER TABLE usertable WITH COMPRESSION = {'sstable_compression': ''};?
?
? ??
執行load測試后,可以在客戶端使用 select * from usertable 查看插入的數據
?
示例:bin/ycsb load cassandra-cql ?-P workloads/workloadc -p "hosts=127.0.0.1" ?-p operationcount=90 -p recordcount=1000000 -p fieldlength=100 -p fieldcount=1??-threads?28
其中??-threads 28 表示使用28個線程,注意壓力測試必須使用多個線程使服務端浸滿,這樣才可以類比leveldb的db_bench。
如果只用一個線程,那么客服交互將非常耗時。
?
如果出現錯誤,嘗試使用cassandra2
bin/ycsb load cassandra2-cql ?-P workloads/workloadc -p "hosts=127.0.0.1" ?-p operationcount=90 -p recordcount=1000000 -p fieldlength=100 -p fieldcount=1??-threads?28
?
?
?
注意:
如果出現類似
?File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
? ? raise child_exception
OSError: [Errno 2] No such file or directory
的錯誤,網上一般說是java沒裝或jdk版本配置不對。但其實可能是maven沒裝。
直接運行提示的 mvn 命令就知道了。
?
轉載于:https://www.cnblogs.com/bettersky/p/6158172.html
總結
以上是生活随笔為你收集整理的使用ycsb测试cassandra的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux驱动开发常用头文件
- 下一篇: 1251 括号(递归小练)