YCSB080安装与初步使用.docx

上传人:b****3 文档编号:4624508 上传时间:2023-05-07 格式:DOCX 页数:16 大小:450.41KB
下载 相关 举报
YCSB080安装与初步使用.docx_第1页
第1页 / 共16页
YCSB080安装与初步使用.docx_第2页
第2页 / 共16页
YCSB080安装与初步使用.docx_第3页
第3页 / 共16页
YCSB080安装与初步使用.docx_第4页
第4页 / 共16页
YCSB080安装与初步使用.docx_第5页
第5页 / 共16页
YCSB080安装与初步使用.docx_第6页
第6页 / 共16页
YCSB080安装与初步使用.docx_第7页
第7页 / 共16页
YCSB080安装与初步使用.docx_第8页
第8页 / 共16页
YCSB080安装与初步使用.docx_第9页
第9页 / 共16页
YCSB080安装与初步使用.docx_第10页
第10页 / 共16页
YCSB080安装与初步使用.docx_第11页
第11页 / 共16页
YCSB080安装与初步使用.docx_第12页
第12页 / 共16页
YCSB080安装与初步使用.docx_第13页
第13页 / 共16页
YCSB080安装与初步使用.docx_第14页
第14页 / 共16页
YCSB080安装与初步使用.docx_第15页
第15页 / 共16页
YCSB080安装与初步使用.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

YCSB080安装与初步使用.docx

《YCSB080安装与初步使用.docx》由会员分享,可在线阅读,更多相关《YCSB080安装与初步使用.docx(16页珍藏版)》请在冰点文库上搜索。

YCSB080安装与初步使用.docx

YCSB080安装与初步使用

YCSB安装与初步使用

整理:

岳凯2016年4月29日

1什么是YCSB

1.1简介

YCSB英文全称:

Yahoo!

CloudServingBenchmark。

是Yahoo公司的一个用来对云服务(cloudserving)/NoSQL/Key-ValueStore进行基础测试的工具,代码开源。

目标是促进新一代云数据服务系统的性能比较。

1.2YCSB客户端架构

随着cloudserving的流行,传统数据库不能满足Avalability、Scalabilty等要求,简化了功能(表连接等)、一致性(事务处理)的NoSQL数据库开始流行。

这类数据库数量很多,各有tradeoff(readandwrite,latencyanddurability,syncandasync等),开发人员和用户很难根据应用的特点选择合适的解决方案。

YCSB的目的是提供一个公平的舞台。

上图是YCSB的结构,可以看成是一个数据库客户端。

暗色的模块是可以替换的,WorkloadExecutor是产生应用负载的,DBInterfaceLayer是将特定数据库的API转为YCSB的API,用户可以自定义负载和数据库。

目前YCSB自带了6种负载(workloads/目录下),其中五种如下表。

用户可以自定义操作(read、update、insert和scan)的比例,以及选择操作目标记录的分布:

Uniform(等概率随机选择记录)、Zipfian(随机选择记录,存在热纪录)和Latest(近期写入的记录是热记录)。

YCSB目前支持多种数据库,如:

HBase、Hypertable、Cassandra、Couchbase、Voldemort、MongoDB、OrientDB、Infinispan、Redis、GemFire、DynamoDB、Tarantool、Memcached等。

用户可以用任意负载测试任意数据库。

YCSB有很好的扩展性,只要按要求实现DB抽象类,就可以添加新的数据库支持。

1.3当前版本

当前版本:

YCSB0.8.0,

发布时间:

Apr13,2016

源代码地址:

当前版本对各种数据库的测试情况(TestedDatabases):

Testedsupport

Thefollowingdatastorebindingshavebeenverifiedasworkingasofthisrelease:

∙ApacheAccumulo1.6.0(viaaccumulobinding).

∙ApacheCassandra2.5.5(viacassandra2-cqlbinding).

∙Couchbase4.1(viacouchbasebinding).

∙DynamoDBusingAWSSDK1.10.48(viadynamodbbinding).

∙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).

2YCSB安装

YCSB的编译和安装依赖Maven、JRE、和Python。

2.1Maven下载与安装

1、Maven官网:

官网:

http:

//maven.apache.org/

最新版本:

2015-11-18,Maven3.3.9

下载地址:

2、下载及安装

1)进入opt目录,创建/opt/modules/目录

#cd/opt

#mkdirmodules

#cdmodules/

2)下载Maven,并解压

#wget

#unzipapache-maven-3.3.9-bin.zip

3)追加路径到/etc/profile环境变量中

#vi/etc/profile

exportMAVEN_HOME=/opt/modules/apache-maven-3.3.9

PATH=${MAVEN_HOME}/bin:

$PATH

exportPATH

使环境变量生效

#source/etc/profile

4)使用mvn-version验证安装

安装成功。

5)JAVA安装

Maven需要调用JRE,如果没有安装JDK,需要单独安装JDK。

2.2YCSB下载与安装

源代码地址:

1)下载源代码并解压缩

进入/usr/local

#cd/usr/local

#wget

#unzipmaster

解压后的YCSB-master目录:

 

2)编译

YCSB源代码编译有两种方式

方式一:

全部编译命令:

mvncleanpackage

说明:

编译全部数据库,要下载很多依赖包,时间要很久,不建议采用。

方式二:

只编译一个数据库,如编译mongodb的命令为:

mvn-plcom.yahoo.ycsb:

mongodb-binding-amcleanpackage

#cdYCSB-master/

#mvn-plcom.yahoo.ycsb:

mongodb-binding-amcleanpackage

下载无数依赖包之后,出现如下提示,说明YCSB编译成功。

如果编译过程意外中止,可以重新运行编译命令。

我使用mongodb验证,所以只编译了YCSB的mongodb部分,也用了很长时间,中断了几次。

3)其他问题

问题一:

缺少argparse包。

运行YCSB,如果报错如下:

[ERROR]argparsenotfound.Tryinstallingitvia"pip".

说明:

报错提示缺少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/workloada

>bin/ycsbloadredis-s-Pworkloads/workloada-p"redis.host=127.0.0.1"-p"redis.port=6379"

>bin/ycsbrunredis-s-Pworkloads/workloada-p"redis.host=127.0.0.1"-p"redis.port=6379"-threads128-p"operationcount=10000"-p"measurementtype=timeseries"-p"timeseries.granularity=5000"

说明:

用户首先需要用load初始化数据库,然后用run运行负载。

dbname指定了目标数据库。

-P指定负载文件的位置。

-p用来设置一些参数,比如数据库的ip和port。

-threads是模拟的线程数。

还有一个常用的参数是-target,指的是每秒最大操作数,当一秒内到达这个阈值,线程就会休眠1毫秒。

当然,在运行YCSB之前,目标数据库必须是开启的。

测试完成后,YCSB会打印平均/最小/最大延迟等信息。

3.2Workload文件

在YCSB-master/workloads目录下有6个workload文件,主要区别如下表:

文件名

模式

各种操作比例

具体参数

workloada

Updateheavyworkload

read/updateratio:

50/50

readproportion=0.5

updateproportion=0.5

workloadb

Readmostlyworkload

read/updateratio:

95/5

readproportion=0.95

updateproportion=0.05

workloadc

Readonly

read/updateratio:

100/0

readproportion=1

updateproportion=0

workloadd

Readlatestworkload

read/update/insert

ratio:

95/0/5

readproportion=0.95

updateproportion=0

scanproportion=0

insertproportion=0.05

workloade

Shortranges

scan/insertratio:

95/5

readproportion=0

updateproportion=0

scanproportion=0.95

insertproportion=0.05

workloadf

Read-modify-write

Read/read-modify-writeratio:

50/50

readproportion=0.5

updateproportion=0

scanproportion=0

insertproportion=0

readmodifywriteproportion=0.5

Workload文件部分参数意思如下面注释:

mongodb.url=mongodb:

//localhost:

27017#待测试mongo实例的数据库地址

mongodb.database=ycsb#测试时使用的数据库名称

mongodb.writeConcern=normal#写入安全性为常规

recordcount=10000#测试数据集的记录条数

operationcount=10000#测试过程中执行的操作总数

workload=com.yahoo.ycsb.workloads.CoreWorkload#workload实现类

readallfields=true#查询时是否读取记录的所有字段

readproportion=0.5#读操作的百分比

updateproportion=0.5#更新操作的百分比

scanproportion=0#扫描操作的百分比

insertproportion=0#插入操作的百分比

requestdistribution=zipfian#请求分布模式,包括:

Uniform(等概率随机选择记录)、Zipfian(随机选择记录,存在热纪录)和Latest(近期写入的记录是热记录)

3.3运行YCSB

1)创建自己的workload文件

#cpworkloadaworkloadyk01

#viworkloadyk01

添加如下mogodb的设置:

mongodb.url=mongodb:

//localhost:

27017

mongodb.database=ycsb

mongodb.writeConcern=normal

保存workloadyk01文件

2)运行YCSBload

#cd/usr/local/YCSB-master/

#./bin/ycsbloadmongodb-threads100-Pworkloads/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//平均响应时间0.45ms

[CLEANUP],MinLatency(us),0.0//最小响应时间0ms

[CLEANUP],MaxLatency(us),45055.0//最大响应时间45ms

[CLEANUP],95thPercentileLatency(us),1.0

[CLEANUP],99thPercentileLatency(us),8.0

[INSERT],Operations,1000.0//执行insert操作的总数,1000

[INSERT],AverageLatency(us),29928.784//每次insert操作的平均延时

29.9ms

[INSERT],MinLatency(us),827.0//所有insert操作的最小延时,0.8ms

[INSERT],MaxLatency(us),351231.0//所有insert操作的最大延时,351ms

[INSERT],95thPercentileLatency(us),203519.0//95%的insert操作延时

在203.5ms以内

[INSERT],99thPercentileLatency(us),329983.0//99%的insert操作延时

在329.9ms以内

[INSERT],Return=OK,1000//成功返回数1000

3)运行YCSBrun

#cd/usr/local/YCSB-master/

#./bin/ycsbrunmongodb-threads100-Pworkloads/workloadyk01

运行成功后显示:

[OVERALL],RunTime(ms),720.0

[OVERALL],Throughput(ops/sec),1388.888888888889

[TOTAL_GCs],Count,2.0

[READ],Operations,514.0

[READ],AverageLatency(us),27392.836575875488

[READ],MinLatency(us),940.0

[READ],MaxLatency(us),340991.0

[READ],95thPercentileLatency(us),169087.0

[READ],99thPercentileLatency(us),272895.0

[READ],Return=OK,514

[CLEANUP],Operations,100.0

[CLEANUP],AverageLatency(us),456.31

[CLEANUP],MinLatency(us),0.0

[CLEANUP],MaxLatency(us),45631.0

[CLEANUP],95thPercentileLatency(us),1.0

[CLEANUP],99thPercentileLatency(us),9.0

[UPDATE],Operations,486.0

[UPDATE],AverageLatency(us),31491.29012345679

[UPDATE],MinLatency(us),1027.0

[UPDATE],MaxLatency(us),331775.0

[UPDATE],95thPercentileLatency(us),189183.0

[UPDATE],99thPercentileLatency(us),288767.0

[UPDATE],Return=OK,486

3.4查看MongoDB中的数据情况

打开mongoshell

#/usr/local/mongodb/mongodb-3.2.4/bin/mongo

>showdbs

local0.000GB

ycsb0.002GB

>useycsb

switchedtodbycsb

>showcollections

usertable

>db.usertable.count()

1000

>

可以看到在usertable数据集合里面有1000条数据,是YCSB插入的。

如果再次运行YCSBload,需要删除mongodb中的usertable数据集合,否则会报[INSERT-FAILED]错。

删除mongodb中的usertable数据集合语句如下:

>showdbs

local0.000GB

ycsb0.002GB

>useycsb

switchedtodbycsb

>db.dropDatabase()

{"dropped":

"ycsb","ok":

1}

>showdbs

local0.000GB

>

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2