• 以Redis和JDBC(MySQL)为例介绍YCSB的使用


    环境

    首先确保安装了jdk和maven,我个人使用的是openjdk11和maven3,由于本人非常建议使用python版本的ycsb,建议安装python。ubuntu 18.04下可以使用apt安装:

    apt install openjdk-11-jdk-headless maven python
    

    时代问题

    需要注意的是ycsb这个项目蛮老的,用的还是python2,用python3的话亲测有语法错误。

    如果你需要在ycsb中使用mongodb,或者想全部编译,就需要注意这点,由于mongodb-async-driver已经废弃了,YCSB无法编译,如果不想费心思改代码的话,就需要把这个jar包找到安装到本地maven,jar包下载:
    百度云下载位置
    之后安装到本地

    mvn install:install-file "-Dfile=mongodb-async-driver-2.0.1.jar" "-DgroupId=com.allanbank" "-DartifactId=mongodb-async-driver" "-Dversion=2.0.1" "-Dpackaging=jar"
    

    不加引号的话Linux下没问题,Windows会有问题。

    使用YCSB

    不建议使用官方编译好的版本,建议自己编译,地址在YCSB,clone的时候建议浅克隆

    git clone --depth 1 https://github.com/brianfrankcooper/YCSB
    cd YCSB
    

    之后因为需要很多乱七八糟的库,不建议直接mvn clean package,部分编译比较好,

    如安装Redis测试工具,则

    mvn -pl site.ycsb:redis-binding -am clean package
    

    对于所有需要jdbc的,则

    mvn -pl site.ycsb:jdbc-binding -am clean package
    

    之后,就可以使用ycsb了,因为不管是bat文件还是sh文件,维护都不够,github上一堆相关issues,建议用python版本,就是./bin/ycsb,以redis为例,方法为

    bin/ycsb load redis -s -P workloads/workloada -p "redis.host=127.0.0.1" -p "redis.port=6379" > redis-load-workloada.log
    bin/ycsb run redis -s -P workloads/workloada -p "redis.host=127.0.0.1" -p "redis.port=6379" >redis-run-workloada.log
    

    测jdbc稍微复杂点,需要做以下三件事:

    • 在数据库中创建以下表:
    CREATE TABLE usertable (
    	YCSB_KEY VARCHAR(255) PRIMARY KEY,
    	FIELD0 TEXT, FIELD1 TEXT,
    	FIELD2 TEXT, FIELD3 TEXT,
    	FIELD4 TEXT, FIELD5 TEXT,
    	FIELD6 TEXT, FIELD7 TEXT,
    	FIELD8 TEXT, FIELD9 TEXT
    );
    
    • 新建一个"db.properties"文件,内容类似于:
    db.driver=com.mysql.cj.jdbc.Driver
    db.url=jdbc:mysql://127.0.0.1:3306/ycsb
    db.user=admin
    db.passwd=admin
    
    • 手动指定数据库Driver的位置

    最终命令如下所示

    bin/ycsb load jdbc -s -P workloads/workloada -P db.properties -cp mysql-connector-java.jar > mysql-load-workloada.log
    bin/ycsb run jdbc -s -P workloads/workloada -P db.properties -cp mysql-connector-java.jar > mysql-run-workloada.log
    

    如果本文中方法有问题可能是更新了,可以看官方YCSB-RedisYCSB-JDBC

  • 相关阅读:
    吴军博士:物联网和人工智能将再造一个英特尔和微软 | 万物互联
    速来膜拜!20位活跃在Github上的国内技术大牛
    创建带Mipmap的osg::Image
    C#文件系统管理【转】
    C#文本文件(.txt)读写 [转]
    C#连接SQL Server数据库进行简单操作[转]
    shell脚本把一些请求量非常高的ip给拒绝掉
    linux获取精准进程PID之pgrep命令
    Kubernetes的Cron Job
    StatefulSet和Deployment的区别
  • 原文地址:https://www.cnblogs.com/cielosun/p/11990272.html
Copyright © 2020-2023  润新知