Yahoo! Cloud Serving Benchmark (YCSB) 是 Yahoo 公司的一个用来对云服务进行基础测试的工具。目标是促进新一代云数据服务系统的性能比较。目前支持对:Cassandra,、HBase、mongodb、redis和一个简单的片式MySQL执行测试,制订了一套核心基准测试和结果报告。
最近在学习hbase,采用的测试环境是hadoop1.0.0、hbase0.92.1。使用官方提供的ycsb0.1.4(下载地址https://github.com/brianfrankcooper/YCSB/wiki)进行测试,总提示"Not a host:port pair"
经过反复安装不同版本hadoop和hbase,均不行。
经查看ycsb源代码(下载地址http://github.com/brianfrankcooper/YCSB/tarball/0.1.4),终于发现端倪。
在源代码根目录下有一个pom.xml文件,内有一段代码是
<hbase.version>0.90.5</hbase.version>
,需要根据需要进行修改,并对hbase客户端代码内pom.xml也进行修改,编译后可以使用。
总结如下:
1.下载ycsb源代码,将根目录下的pom.xml中<hbase.version>0.90.5</hbase.version>修改为对应版本;
2. 将源代码中hbase文件夹中pom.xml中增加
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.0.0</version>
</dependency>
这里的hadoop版本为对应版本
3.使用maven进行编译,编译方法为在命令行中进入到源代码根目录,运行mvn clean package。maven需要联网环境才可以编译,因为编译的时候会自动下载相关库。
4.编译完毕后,将hbase\target\hbase-binding.jar文件替换原来\ycsb-0.1.4\hbase-binding\lib中的对应的文件即可。
5.将hbase目录下的hbase-site.xml文件拷贝到\ycsb-0.1.4\hbase-binding\conf\中。
具体测试方法分为两步骤:
1.在hbase目录中执行
./bin/hbase shell
进入hbase shell
2.创建一个名为“usertable"的表,并随意创建一个列族,这里以first为例。
create 'usertable','f1','f2','f3'3. 加载数据
终端进入ycsb根目录;执行
4.执行测试./bin/ycsb load hbase -P workloads/workloada -p threads=10 -p columnfamily=first -p recordcount=10000 -s > load.dat
./bin/ycsb run hbase -P workloads/workloada -threads 10 -p -p columnfamily=first -p > transactions.dat
5.查看测试结果
vim transactions.dat
我已经编译好了针对hbase0.92.1版本的文件,下载地址是http://pan.baidu.com/share/link?shareid=536252&uk=2567213251