ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:450.41KB ,
资源ID:10781497      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10781497.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(YCSB080安装与初步使用.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

YCSB080安装与初步使用.docx

1、YCSB080安装与初步使用YCSB安装与初步使用整理:岳凯 2016年4月29日1 什么是YCSB1.1 简介YCSB英文全称:Yahoo! Cloud Serving Benchmark。是 Yahoo 公司的一个用来对云服务(cloud serving)/NoSQL/Key-Value Store进行基础测试的工具,代码开源。目标是促进新一代云数据服务系统的性能比较。1.2 YCSB客户端架构随着cloud serving的流行,传统数据库不能满足Avalability、Scalabilty等要求,简化了功能(表连接等)、一致性(事务处理)的NoSQL数据库开始流行。这类数据库数量很多,

2、各有tradeoff(read and write,latency and durability,sync and async等),开发人员和用户很难根据应用的特点选择合适的解决方案。YCSB的目的是提供一个公平的舞台。上图是YCSB的结构,可以看成是一个数据库客户端。暗色的模块是可以替换的,Workload Executor是产生应用负载的,DB Interface Layer是将特定数据库的API转为YCSB的API,用户可以自定义负载和数据库。目前YCSB自带了6种负载(workloads/目录下),其中五种如下表。用户可以自定义操作(read、update、insert和scan)的比

3、例,以及选择操作目标记录的分布:Uniform(等概率随机选择记录)、Zipfian(随机选择记录,存在热纪录)和Latest(近期写入的记录是热记录)。YCSB目前支持多种数据库,如:HBase、Hypertable、Cassandra、Couchbase、Voldemort、MongoDB、OrientDB、Infinispan、Redis、GemFire、DynamoDB、Tarantool、 Memcached等。用户可以用任意负载测试任意数据库。YCSB有很好的扩展性,只要按要求实现DB抽象类,就可以添加新的数据库支持。1.3 当前版本当前版本:YCSB 0.8.0, 发布时间:Ap

4、r 13, 2016源代码地址:当前版本对各种数据库的测试情况(Tested Databases):Tested supportThe following datastore bindings have been verified as working as of this release: Apache Accumulo 1.6.0 (via accumulo binding). Apache Cassandra 2.5.5 (via cassandra2-cql binding). Couchbase 4.1 (via couchbase binding). DynamoDB using

5、AWS SDK 1.10.48 (via dynamodb binding). Elasticsearch 2.0.2, 2.1.2, 2.2.2, 2.3.1 (via elasticsearch binding). Apache Geode (incubating) 1.0.0-incubating.M1 (via geode binding). Apache HBase 1.0.0 (CDH5.5.2) (via hbase10 bindings). MongoDB 1.8.5(async only), 2.0.9, 2.2.7, 2.4.14, 2.6.12, 3.0.11, 3.2.

6、4 (via mongodb and mongodb-async bindings). Amazon S3 (via s3 binding). Tarantool 1.6.6-249, 1.6.8, 1.7-alpha (via tarantool binding).Supported Aerospike (via aerospike binding). Apache HBase 0.9.8 (via hbase098 binding). Apache Kudu (incubating) (via kudu binding). Apache Solr 5.4.0 (via solr bindi

7、ng). Google Cloud Datastore (via googledatastore binding). JDBC on MySQL 5.1.73 (via jdbc binding). Memcached 1.4.4 (via memcached binding).Untested Apache Cassandra versions prior to 2.0 (via cassandra-7, cassandra-8, cassandra-10 bindings). Apache Cassandra versions 3+ (via cassandra2-cql bindings

8、). Apache HBase (via hbase094 binding). HyperTable (via hypertable binding). Infinispan (via infinispan and infinispan-cs bindings) Mapkeeper (via mapkeeper binding) NoSQLDB (via nosqldb binding) OrientDB 2.1.2 (via orientdb binding).2 YCSB安装YCSB的编译和安装依赖Maven、JRE、和Python。2.1 Maven下载与安装1、Maven官网:官网:h

9、ttp:/maven.apache.org/最新版本:2015-11-18,Maven 3.3.9下载地址:2、下载及安装1)进入opt目录,创建/opt/modules/目录# cd /opt# mkdir modules# cd modules/2)下载Maven,并解压# wget # unzip apache-maven-3.3.9-bin.zip3)追加路径到/etc/profile环境变量中# vi /etc/profileexport MAVEN_HOME=/opt/modules/apache-maven-3.3.9PATH=$MAVEN_HOME/bin:$PATHexpor

10、t PATH使环境变量生效# source /etc/profile4)使用mvn -version验证安装安装成功。5)JAVA安装Maven需要调用JRE,如果没有安装JDK,需要单独安装JDK。2.2 YCSB下载与安装源代码地址:1)下载源代码并解压缩进入/usr/local# cd /usr/local # wget # unzip master解压后的YCSB-master目录:2)编译YCSB源代码编译有两种方式方式一:全部编译命令: mvn clean package说明:编译全部数据库,要下载很多依赖包,时间要很久,不建议采用。方式二:只编译一个数据库,如编译mongodb的

11、命令为:mvn -pl com.yahoo.ycsb:mongodb-binding -am clean package# cd YCSB-master/# mvn -pl com.yahoo.ycsb:mongodb-binding -am clean package下载无数依赖包之后,出现如下提示,说明YCSB编译成功。如果编译过程意外中止,可以重新运行编译命令。我使用mongodb验证,所以只编译了YCSB的mongodb部分,也用了很长时间,中断了几次。3)其他问题问题一:缺少argparse包。运行YCSB,如果报错如下:ERROR argparse not found. Try i

12、nstalling it via pip.说明:报错提示缺少argparse包,让通过PIP方式下载argparse。 argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。如果服务器已经安装了PIP,可以使用命令pip install argparse 下载;如果没有安装pip,有easy_install,可以使用命令easy_install argparse下载。安装后问题解决。3 YCSB初步使用3.1 YCSB运行命令命令的格式是:bin/ycsb load|run dbname P path/to/workloadfile p ke

13、y=value具体例子如:./bin/ycsb load mongodb -threads 100 -P workloads/workloada./bin/ycsb run mongodb -threads 100 -P workloads/workloada bin/ycsb load redis -s -P workloads/workloada -p redis.host=127.0.0.1 -p redis.port=6379 bin/ycsb run redis -s -P workloads/workloada -p redis.host=127.0.0.1 -p redis.po

14、rt=6379 -threads 128 -p operationcount=10000 -p measurementtype=timeseries -p timeseries.granularity=5000说明:用户首先需要用load初始化数据库,然后用run运行负载。dbname指定了目标数据库。-P指定负载文件的位置。-p用来设置一些参数,比如数据库的ip和port。-threads是模拟的线程数。还有一个常用的参数是-target,指的是每秒最大操作数,当一秒内到达这个阈值,线程就会休眠1毫秒。当然,在运行YCSB之前,目标数据库必须是开启的。测试完成后,YCSB会打印平均/最小/最

15、大延迟等信息。3.2 Workload文件在YCSB-master/workloads目录下有6个workload文件,主要区别如下表:文件名模式各种操作比例具体参数workloadaUpdate heavy workloadread/update ratio: 50/50readproportion=0.5updateproportion=0.5workloadbRead mostly workloadread/update ratio: 95/5readproportion=0.95updateproportion=0.05workloadcRead onlyread/update rat

16、io: 100/0readproportion=1updateproportion=0workloaddRead latest workloadread/update/insertratio: 95/0/5readproportion=0.95updateproportion=0scanproportion=0insertproportion=0.05workloadeShort rangesscan/insert ratio: 95/5readproportion=0updateproportion=0scanproportion=0.95insertproportion=0.05workl

17、oadfRead-modify-writeRead/read-modify-write ratio: 50/50readproportion=0.5updateproportion=0scanproportion=0insertproportion=0readmodifywriteproportion=0.5Workload文件部分参数意思如下面注释:mongodb.url=mongodb:/localhost:27017 # 待测试mongo实例的数据库地址mongodb.database=ycsb # 测试时使用的数据库名称mongodb.writeConcern=normal # 写入安

18、全性为常规recordcount=10000 # 测试数据集的记录条数operationcount=10000 # 测试过程中执行的操作总数workload=com.yahoo.ycsb.workloads.CoreWorkload # workload实现类readallfields=true # 查询时是否读取记录的所有字段readproportion=0.5 # 读操作的百分比updateproportion=0.5 # 更新操作的百分比scanproportion=0 # 扫描操作的百分比insertproportion=0 # 插入操作的百分比 requestdistribution

19、=zipfian # 请求分布模式,包括:Uniform(等概率随机选择记录)、Zipfian(随机选择记录,存在热纪录)和Latest(近期写入的记录是热记录)3.3 运行YCSB1)创建自己的workload文件# cp workloada workloadyk01# vi workloadyk01添加如下mogodb的设置:mongodb.url=mongodb:/localhost:27017mongodb.database=ycsbmongodb.writeConcern=normal保存workloadyk01文件2)运行YCSB load# cd /usr/local/YCSB-

20、master/# ./bin/ycsb load mongodb -threads 100 -P workloads/workloadyk01运行成功后显示:说明如下:OVERALL, RunTime(ms), 720.0 / 数据加载所用时间:0.7秒OVERALL, Throughput(ops/sec), 1388.888888888889 /加载操作的吞吐量,平均并发量每秒1388条TOTAL_GCs, Count, 2.0 CLEANUP, Operations, 100.0 /参数中的100个线程CLEANUP, AverageLatency(us), 450.58 /平均响应时间

21、0.45msCLEANUP, MinLatency(us), 0.0 /最小响应时间0msCLEANUP, MaxLatency(us), 45055.0 /最大响应时间45msCLEANUP, 95thPercentileLatency(us), 1.0CLEANUP, 99thPercentileLatency(us), 8.0INSERT, Operations, 1000.0 /执行insert操作的总数,1000INSERT, AverageLatency(us), 29928.784 /每次insert操作的平均延时29.9msINSERT, MinLatency(us), 827

22、.0 /所有insert操作的最小延时,0.8msINSERT, MaxLatency(us), 351231.0 /所有insert操作的最大延时,351msINSERT, 95thPercentileLatency(us), 203519.0 / 95%的insert操作延时在203.5ms以内INSERT, 99thPercentileLatency(us), 329983.0 / 99%的insert操作延时在329.9ms以内INSERT, Return=OK, 1000 /成功返回数10003)运行YCSB run# cd /usr/local/YCSB-master/# ./bi

23、n/ycsb run mongodb -threads 100 -P workloads/workloadyk01运行成功后显示:OVERALL, RunTime(ms), 720.0OVERALL, Throughput(ops/sec), 1388.888888888889TOTAL_GCs, Count, 2.0READ, Operations, 514.0READ, AverageLatency(us), 27392.836575875488READ, MinLatency(us), 940.0READ, MaxLatency(us), 340991.0READ, 95thPercen

24、tileLatency(us), 169087.0READ, 99thPercentileLatency(us), 272895.0READ, Return=OK, 514CLEANUP, Operations, 100.0CLEANUP, AverageLatency(us), 456.31CLEANUP, MinLatency(us), 0.0CLEANUP, MaxLatency(us), 45631.0CLEANUP, 95thPercentileLatency(us), 1.0CLEANUP, 99thPercentileLatency(us), 9.0UPDATE, Operati

25、ons, 486.0UPDATE, AverageLatency(us), 31491.29012345679UPDATE, MinLatency(us), 1027.0UPDATE, MaxLatency(us), 331775.0UPDATE, 95thPercentileLatency(us), 189183.0UPDATE, 99thPercentileLatency(us), 288767.0UPDATE, Return=OK, 4863.4 查看MongoDB中的数据情况打开mongo shell# /usr/local/mongodb/mongodb-3.2.4/bin/mong

26、o show dbslocal 0.000GBycsb 0.002GB use ycsbswitched to db ycsb show collectionsusertable db.usertable.count()1000可以看到在usertable数据集合里面有1000条数据,是YCSB插入的。如果再次运行YCSB load,需要删除mongodb中的usertable数据集合,否则会报INSERT-FAILED错。删除mongodb中的usertable数据集合语句如下: show dbslocal 0.000GBycsb 0.002GB use ycsbswitched to db ycsb db.dropDatabase() dropped : ycsb, ok : 1 show dbslocal 0.000GB

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1