YCSB配置和测试HBase

 
本文主要介绍如何使用YCSB来测试HBase,以及如何解决No FileSystem for scheme: hdfs错误和Error accessing HBase table错误。

YCSB项目地址和简介: https://github.com/brianfrankcooper/YCSB/wiki
YCSB的目标是开发一个框架和通用的workloads来评估不同的key-value和cloud提供的存储服务。
组成:YCSB Client,一个可扩展的workload发生器;Core workloads,一系列的workload场景,由generator来执行。
支持测试不同的数据库包括HBase,Cassandra,Infinispan,MongoDB等等。
通常用来benchmark多个系统,对比它们。比如可以在相同的硬件上面安装不同的系统,然后运行相同的workloads,对比不同系统的性能。

HBase测试
1. Hadoop和HBase都部署完毕且正常启动
比如我使用Hadoop 2.7.0和HBase 1.0.1.1
2. 配置YCSB
# git clone git://github.com/brainfrankcooper/YCSB.git
# cd YCSB
为YCSB的hbase client程序添加依赖项,原先只有org.apache.hbase的hbase-client依赖包,我们还需要添加org.apache.hadoop以来hadoop-common和hadoop-hdfs包,这里缺少hbase和hadoop依赖包的话,即便编译完成,但是在运行ycsb的时候会报出hdfs或者hbase相关的错误。依赖包的版本根据自己的实际安装情况,参考hbase/lib/目录下的jar包版本。
# vim hbase/pom.xml
<modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.yahoo.ycsb</groupId>
    <artifactId>root</artifactId>
    <version>0.2.0-SNAPSHOT</version>
  </parent>

  <artifactId>hbase-binding</artifactId>
  <name>HBase DB Binding</name>

  <dependencies>
    <dependency>
      <groupId> org.apache.hbase</groupId>
      <artifactId> hbase-client</artifactId>
      <version> 1.0.1.1</version>
    </dependency>
    <dependency>
      <groupId> org.apache.hadoop</groupId>
      <artifactId> hadoop-hdfs</artifactId>
      <version> 2.5.1</version>
    </dependency>
    <dependency>
      <groupId> org.apache.hadoop</groupId>
      <artifactId> hadoop-common</artifactId>
      <version> 2.5.1</version>
    </dependency>
    <dependency>
      <groupId>com.yahoo.ycsb</groupId>
      <artifactId>core</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
# cd ..
# mvn clean package
没有mvn的话要下载maven:
# tar zxf apache-maven-3.3.3-bin.tar.gz
# mv apache-maven-3.3.3 /usr/maven
# export PARH=$PATH:/usr/maven/bin
编译完毕:
 
3. 创建一个HBase table
HBASE_HOME/bin/hbase shell
hbase(main):001:0> create 'usertable', 'family'
在HBase Master web端 http://10.10.10.20:60010/master-status看到的信息:
 
4. 导入数据
在运行worklload之前,需要先导入load数据。
需要指定一个包含HBase的配置文件hbase-site.xml的目录和一个table名和一个column族,使用-cp是设置java的classpath,-p是用来设置各种属性。这里的重点是java的CLASSPATH,参考export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$HBASE_HOME/conf:$HADOOP_HOME/etc/hadoop/:$HBASE_HOME/lib:$HADOOP_HOME/lib,$HBASE_HOME/lib目录下有hadoop、hbase、log4j等jar包。
# bin/ycsb load hbase -P workloads/workloada -cp $CLASSPATH -p table=usertable -p columnfamily=family

错误1:java.io.IOException: No FileSystem for scheme: hdfs
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值