YCSB(0.8.0)安装与初步使用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1YCSB安装与初步使用整理:岳凯2016年4月29日1什么是YCSB1.1简介YCSB英文全称:Yahoo!CloudServingBenchmark。是Yahoo公司的一个用来对云服务(cloudserving)/NoSQL/Key-ValueStore进行基础测试的工具,代码开源。目标是促进新一代云数据服务系统的性能比较。1.2YCSB客户端架构随着cloudserving的流行,传统数据库不能满足Avalability、Scalabilty等要求,简化了功能(表连接等)、一致性(事务处理)的NoSQL数据库开始流行。这类数据库数量很多,各有tradeoff(readandwrite,latencyanddurability,syncandasync等),开发人员和用户很难根据应用的特点选择合适的解决方案。YCSB的目的是提供一个公平的舞台。2上图是YCSB的结构,可以看成是一个数据库客户端。暗色的模块是可以替换的,WorkloadExecutor是产生应用负载的,DBInterfaceLayer是将特定数据库的API转为YCSB的API,用户可以自定义负载和数据库。目前YCSB自带了6种负载(workloads/目录下),其中五种如下表。用户可以自定义操作(read、update、insert和scan)的比例,以及选择操作目标记录的分布:Uniform(等概率随机选择记录)、Zipfian(随机选择记录,存在热纪录)和Latest3(近期写入的记录是热记录)。YCSB目前支持多种数据库,如:HBase、Hypertable、Cassandra、Couchbase、Voldemort、MongoDB、OrientDB、Infinispan、Redis、GemFire、DynamoDB、Tarantool、Memcached等。用户可以用任意负载测试任意数据库。YCSB有很好的扩展性,只要按要求实现DB抽象类,就可以添加新的数据库支持。1.3当前版本当前版本:YCSB0.8.0,发布时间:Apr13,2016源代码地址:当前版本对各种数据库的测试情况(TestedDatabases):TestedsupportThefollowingdatastorebindingshavebeenverifiedasworkingasofthisrelease:ApacheAccumulo1.6.0(viaaccumulobinding).ApacheCassandra2.5.5(viacassandra2-cqlbinding).Couchbase4.1(viacouchbasebinding).DynamoDBusingAWSSDK1.10.48(viadynamodbbinding).4Elasticsearch2.0.2,2.1.2,2.2.2,2.3.1(viaelasticsearchbinding).ApacheGeode(incubating)1.0.0-incubating.M1(viageodebinding).ApacheHBase1.0.0(CDH5.5.2)(viahbase10bindings).MongoDB1.8.5(asynconly),2.0.9,2.2.7,2.4.14,2.6.12,3.0.11,3.2.4(viamongodbandmongodb-asyncbindings).AmazonS3(vias3binding).Tarantool1.6.6-249,1.6.8,1.7-alpha(viatarantoolbinding).SupportedAerospike(viaaerospikebinding).ApacheHBase0.9.8(viahbase098binding).ApacheKudu(incubating)(viakudubinding).ApacheSolr5.4.0(viasolrbinding).GoogleCloudDatastore(viagoogledatastorebinding).JDBConMySQL5.1.73(viajdbcbinding).Memcached1.4.4(viamemcachedbinding).UntestedApacheCassandraversionspriorto2.0(viacassandra-7,cassandra-8,cassandra-10bindings).ApacheCassandraversions3+(viacassandra2-cqlbindings).ApacheHBase(viahbase094binding).HyperTable(viahypertablebinding).Infinispan(viainfinispanandinfinispan-csbindings)Mapkeeper(viamapkeeperbinding)NoSQLDB(vianosqldbbinding)OrientDB2.1.2(viaorientdbbinding).52YCSB安装YCSB的编译和安装依赖Maven、JRE、和Python。2.1Maven下载与安装1、Maven官网:官网:最新版本:2015-11-18,Maven3.3.9下载地址:://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.zip2、下载及安装1)进入opt目录,创建/opt/modules/目录#cd/opt#mkdirmodules#cdmodules/2)下载Maven,并解压#wget)追加路径到/etc/profile环境变量中6#vi/etc/profileexportMAVEN_HOME=/opt/modules/apache-maven-3.3.9PATH=${MAVEN_HOME}/bin:$PATHexportPATH使环境变量生效#source/etc/profile4)使用mvn-version验证安装安装成功。5)JAVA安装Maven需要调用JRE,如果没有安装JDK,需要单独安装JDK。2.2YCSB下载与安装源代码地址:)下载源代码并解压缩进入/usr/local#cd/usr/local#wget解压后的YCSB-master目录:82)编译YCSB源代码编译有两种方式方式一:全部编译命令:mvncleanpackage说明:编译全部数据库,要下载很多依赖包,时间要很久,不建议采用。方式二:只编译一个数据库,如编译mongodb的命令为:9mvn-plcom.yahoo.ycsb:mongodb-binding-amcleanpackage#cdYCSB-master/#mvn-plcom.yahoo.ycsb:mongodb-binding-amcleanpackage下载无数依赖包之后,出现如下提示,说明YCSB编译成功。如果编译过程意外中止,可以重新运行编译命令。我使用mongodb验证,所以只编译了YCSB的mongodb部分,也用了很长时间,中断了几次。3)其他问题问题一:缺少argparse包。运行YCSB,如果报错如下:[ERROR]argparsenotfound.Tryinstallingitviapip.10说明:报错提示缺少argparse包,让通过PIP方式下载argparse。argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。如果服务器已经安装了PIP,可以使用命令pipinstallargparse下载;如果没有安装pip,有easy_install,可以使用命令easy_installargparse下载。安装后问题解决。3YCSB初步使用3.1YCSB运行命令命令的格式是:bin/ycsb[load|run]dbname–Ppath/to/workloadfile–pkey=value具体例子如:./bin/ycsbloadmongodb-threads100-Pworkloads/workloada./bin/ycsbrunmongodb-threads100-Pworkloads/workloadabin/ycsbloadredis-s-Pworkloads/workloada-predis.host=127.0.0.1-predis.port=6379bin/ycsbrunredis-s-Pworkloads/workloada-predis.host=127.0.0.1-predis.port=6379-threads128-poperationcount=10000-pmeasurementtype=timeseries-ptimeseries.granularity=500011说明:用户首先需要用load初始化数据库,然后用run运行负载。dbname指定了目标数据库。-P指定负载文件的位置。-p用来设置一些参数,比如数据库的ip和port。-threads是模拟的线程数。还有一个常用的参数是-target,指的是每秒最大操作数,当一秒内到达这个阈值,线程就会休眠1毫秒。当然,在运行YCSB之前,目标数据库必须是开启的。测试完成后,YCSB会打印平均/最小/最大延迟等信息。3.2Workload文件在YCSB-master/workloads目录下有6个workload文件,主要区别如下表:文件名模式各种操作比例具体参数workloadaUpdateheavyworkloadread/updateratio:50/50readproportion=0.5updateproportion=0.5workloadbReadmostlyworkloadread/updateratio:95/5readproportion=0.95updateproportion=0.05workloadcReadonlyread/updateratio:100/0readproportion=1updateproportion=0workloaddReadlatestworkloadread/update/insertratio:95/0/5readproportion=0.95updateproportion=0scanproportion=0insertproportion=0.05workloadeShortrangesscan/insertratio:95/5readproportion=0updateproportion=0scanproportion=0.95insertproportion=0.05workloadfRead-modify-writeRead/read-modify-writeratio:50/50readproportion=0.5updateproportion=012scanproportion=0insertproportion=0readmodifywritepro

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功