转自:http://www.itdadao.com/articles/c15a531189p0.html http://www.cnblogs.com/bettersky/p/6158172.html

参考 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参数 长度和个数

在运行测试之前,必须先运行cassrandra客户端手动创建供ycsb使用的数据库和表。

数据库名叫ycsb,表名叫usertable,按照上面的参考进行。

create keyspace ycsb  WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 3 };
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);

执行load测试后,可以在客户端使用 select * from usertable 查看插入的数据

示例:bin/ycsb load cassandra-cql  -P workloads/workloada -p "hosts=127.0.0.1"  -p operationcount=90 -p recordcount=1000000 -p fieldlength=100 -p fieldcount=1  -threads 10

其中  -threads 10 表示使用10个线程,注意压力测试必须使用多个线程使服务端浸满,这样才可以类比leveldb的db_bench。

fieldlength含义:

fieldlength=250
fieldcount=8

每个文档大小大约2KB(fieldlength x fieldcount)。

如果只用一个线程,那么客服交互将非常耗时。

在cassandra中创建相应的column family(table),其中keyspace可以自定义,但是table不可以(或者说我还没发现怎么更改,请指教)。cql命令如下:

create keyspace testmr  WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 3 };

USE testmr;
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
);

3. 根据官方的workloada,创建如下workload文件:

hosts=172.31.1.158
cassandra.keyspace=testmr cassandra.username=cloud
cassandra.password=cloud recordcount=100000
operationcount=100000
workload=com.yahoo.ycsb.workloads.CoreWorkload readallfields=true readproportion=0.5
updateproportion=0.5
scanproportion=0
insertproportion=0 requestdistribution=zipfian

4. 执行ycsb
  首先准备数据,执行

 python27 ./bin/ycsb load cassandra2-cql -P workloada -s

其次进行测试:

python27 ./bin/ycsb run cassandra2-cql -P workloada -s

最后我运行的测试命令:

ycsb-0.12.0 # ./bin/ycsb load cassandra-cql  -P workloads2/workloada -p "hosts=128.18.104.11"  -threads 20 -s >outLoad.txt

最新文章

  1. QGEditors.WinForms WinForms下使用的部分扩展控件
  2. fdatool 设计IIR滤波器
  3. 用js加密你的重要信息
  4. lkx开发日志1-项目前的准备
  5. C++学习笔记29:运行期型式信息2
  6. CentOS下如何完全卸载MySQL?卸载自带的mysql
  7. Adobe CS6系列PJ方法
  8. Join-Path(拼接路径)
  9. Asp.NET获取文件及其路径
  10. Java LoggingAPI 使用方法
  11. 转:C#中的委托和事件(续)
  12. input[type=number]问题
  13. Centos6增加新用户并赋予权限
  14. Activtiy完全解析(二、layout的inflate过程)
  15. JetBrains 系列编译器 破解(idea,webstrom ,pycharm等)
  16. 论文列表 for Action recognition
  17. PHP 中 call_user_func 函数 和 call_user_func_array 函数的区别
  18. Linux上常用的基本命令
  19. 解题:POI 2007 Tourist Attractions
  20. Scala面向对象和模式匹配

热门文章

  1. 《深入理解Linux内核》阅读笔记 --- Chapter 2 Memory Addressing
  2. <context-param>与<init-param>的差别与作用
  3. python 多进程使用Queue通信的例子
  4. phpexcel导出带生成图片完美案例
  5. C# 委托及匿名函数
  6. 请求库之selenium
  7. js 数组判断是否包含某元素 或 数组去重
  8. vue-cli脚手架build目录中check-versions.js的配置
  9. HihoCoder - 1339 Dice Possibility(概率dp)
  10. Xcode 解决日志打印不全问题