YCSB--HBase性能测试工具的安装和使用

YCSB

一、背景概念

英文全称:Yahoo!CloudServing Benchmark(YCSB)。是Yahoo公司的一个用来对云服务进行基础测试的工具。目标是促进新一代云数据服务系统的性能比较。为四个广泛使用的系统:Cassandra、HBase、PNUTS和一个简单的片式MySQL执行,订了套核心基础测试和结果报告。

 

二、资源获取

首先在官网上下载源码编译或者直接下载软件包

https://github.com/brianfrankcooper/YCSB/releases/tag/0.10.0

编译的话需要maven工程和其他资源包的依赖比较麻烦,建议直接下载软件包。

 

补充一点编译的内容:

下载好最新源码

解压到本地并进入源码根目录YCSB-0.10.0

 

如果想编译出完整版的话直接输入

mvn clean package

编译成功的话,在YCSB-0.10.0/distribution目录下会有对应的ycsb的压缩包,拷贝解压即可使用

这种方法编译出的完整版ycsb适用于多种数据库所以依赖的库太多,目标文件太大,耗费时间太长,不建议用这种方式编译。

 

建议单独编一个只用于测试某个数据库(例如hbase)的ycsb可输入

mvn -pl com.yahoo.ycsb:hbase10-binding -am clean package  #我就是用这种方法编的

编译结果节选:

…..

[INFO] Building tar: /opt/YCSB-0.10.0/hbase10/target/ycsb-hbase10-binding-0.10.0.tar.gz

[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary:

[INFO]

[INFO] YCSB Root ......................................... SUCCESS [1.903s]

[INFO] Core YCSB ......................................... SUCCESS [8.384s]

[INFO] Per Datastore Binding descriptor .................. SUCCESS [0.497s]

[INFO] YCSB Datastore Binding Parent ..................... SUCCESS [0.582s]

[INFO] HBase 1.0 DB Binding .............................. SUCCESS [51.209s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 1:03.143s

[INFO] Finished at: Sat Jul 09 11:30:05 PHT 2016

[INFO] Final Memory: 52M/1694M

[INFO] ------------------------------------------------------------------------

 

 

这种方法编译成功的话,在YCSB-0.10.0/hbase10/target 目录下会有

ycsb-hbase10-binding-0.10.0.tar.gz 压缩包即我们的目标文件,解压之后即可使用

 

环境中的mvn仓库使用的是172.7.1.216上的资源,在实际编译的过程中会遇到依赖包不匹配或者依赖包不存在的问题,可以手动的在search.maven.org上去搜索下载相应的资源放在本地的~/.m2/repository/ 的对应目录下即可

 

我们这里测的是hbase所以就是直接下载了ycsb-hbase10-binding-0.10.0.tar.gz(注意这个只是对hbase10即hbase1.0的适用,官网上有一个对所有数据库全适用的软件包,300M太大了网络不好没有必要去下)使用。

 

三、配置与使用

这里首先要去检查下hbase-site.xml中的配置是否正确,不然在运行ycsb时会报错

 

<property>

  <name>hbase.regionserver.global.memstore.size</name>

  <value>0.4</value>

</property>

.

.

.

<property>

      <name>hfile.block.cache.size</name>

      <value>0.2</value>

    </property>

 

 

将下载好的ycsb-hbase10-binding-0.10.0.tar.gz解压使用

目录结构:

[root@node1 ycsb-hbase10-binding-0.10.0]# ll

total 24

drwxr-xr-x 2 root root   46 Jul  8 15:12 bin

drwxr-xr-x 2 root root 4096 Jul  8 15:12 lib

-rw-r--r-- 1 root root 8082 Jul  7 20:45 LICENSE.txt

-rw-r--r-- 1 root root  615 Jul  7 20:45 NOTICE.txt

-rw-r--r-- 1 root root 5484 Jul  7 20:45 README.md

drwxrwxr-x 2 root root  126 Jul  7 20:45 workloads

 

 

这里额外介绍一下一个完全版本的ycsb的目录结构

[root@node1 ycsb-0.1.4]# ll

total 20

drwxrwxrwx 2  501 games   31 Feb 24  2012 bin

drwxr-xr-x 3 root root    16 Jul  8 11:49 cassandra-binding

-rw-r--r-- 1  501 games 2291 Feb 24  2012 CHANGELOG

drwxr-xr-x 3 root root    16 Jul  8 11:49 core

drwxr-xr-x 4 root root    27 Jul  8 11:49 gemfire-binding

drwxr-xr-x 4 root root    27 Jul  8 11:49 hbase-binding

drwxr-xr-x 4 root root    27 Jul  8 11:49 infinispan-binding

drwxr-xr-x 4 root root    27 Jul  8 11:49 jdbc-binding

-rw-r--r-- 1  501 games 8082 Feb 19  2012 LICENSE.txt

drwxr-xr-x 3 root root    29 Jul  8 11:49 mapkeeper-binding

drwxr-xr-x 3 root root    16 Jul  8 11:49 mongodb-binding

drwxr-xr-x 4 root root    40 Jul  8 11:49 nosqldb-binding

-rw-r--r-- 1  501 games  479 Feb 19  2012 NOTICE.txt

-rw-r--r-- 1  501 games  952 Feb 24  2012 README

drwxr-xr-x 3 root root    16 Jul  8 11:49 redis-binding

drwxr-xr-x 2 root root    27 Jul  8 14:38 results

drwxr-xr-x 4 root root    27 Jul  8 11:49 voldemort-binding

drwxrwxrwx 2  501 games  102 Feb 22  2012 workloads

 

 

完整版需要手动去拷贝相关hbase库到hbase-binding的lib目录下,并将hbase-site.xml拷贝至hbase-binding的conf目录下。

 

而我们ycsb-hbase10-binding-0.10.0针对性更强更加精简,在lib目录下面有所需的各种库文件,无需手动从hba

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值