zoukankan      html  css  js  c++  java
  • 雅虎(ycsb)测试hbase(压测)

    一、下载ycsb 0.10包

    https://github.com/brianfrankcooper/YCSB/releases/download/0.10.0/ycsb-0.10.0.tar.gz

    二、上传到linux,解压

    三、YSCB压力测试hbase流程
    1、进入workloads目录下进行文件配置:比如: workload_test,我们也可以根据下面进行自定义配置:

    参数说明:

    这里我根据workloads下的文件进行的配置:

    #load阶段插入的数据条数,可以在命令行设置,但是在命令行设置可以覆盖这里的作用
    recordcount=1000
    #run阶段(比如insert,update等操作)共计的操作次数
    operationcount=1000
    #核心框架配置
    workload=com.yahoo.ycsb.workloads.CoreWorkload  
    # true/false. 配置在读取一行数据信息时,是否同时读取所有列
    readallfields=true
    # 在整个run阶段中,read操作应该占的比例(默认0.95).
    readproportion=0.5
    # 在整个run阶段中,update操作应该占的比例(默认0.05).
    updateproportion=0.5
    # 在整个run阶段中,scan操作应该占的比例(默认为0).
    scanproportion=0
    # 在整个run阶段中,insert操作应该占的比例(默认0).
    insertproportion=0
    # 请求在keyspace中的分布情况,例如是否关注热点还是平均取数据等场景。可以设置 zipfian,uniform,latest
    requestdistribution=zipfian
    还可以进行其他参数配置,我这里默认的是以workloads下解压时就有的文件内容为准
     
    workloads目录下 :里面包含一些压力测试的场景文件。YCSB自带了6中压力测试场景,文件和相应场景的对应关系如下:

    workloada:混合了50%的读和50%的写;
    workloadb:Read mostly workload,混合了95%的读和5%的写,该workload侧重于测试集群的读能力;
    workloadc:Read only,100%只读;
    workloadd:Read latest workload,插入数据,接着就读取这些新插入的数据;
    workloade:Short ranges,短范围scan,不同于随机读,每个测试线程都会去scan一段数据;
    workloadf:Read-modiy-wirte,读改写,客户端读出一个记录,修改它并将被修改的记录返回;
     
    2、在hbase创建表:
    hbase(main):005:0> create 'usertable',{NAME => 'f1'}
    0 row(s) in 0.7650 seconds
     
    3、加载数据:加载10W条数据记录:
    bin/ycsb load hbase098 -P workloads/workloadb -cp /etc/hyperbase1/conf  -p threads=10 -p table=usertable -p columnfamily=f1 -p recordcount=100000  -s > /yang/load.log
     
    参数说明:
    hbase098:加载数据时指明所用的数据库类型
    -P指明了所用的配置文件的路径;
    其中 -P 指定workload_test核心配置,-cp 指定的是 /etc/hyperbase1/conf 下的hbase-site.xml文件 -p 指定的参数覆盖workloadb中的配置。threads指定client启用多少个线程运行HBase client, 即对应HTable实例。
    threads=10 配置了并发线程个数
    table=usertable -p columnfamily=f1  Hbase中的表和列族
    recordcount=100000  Load阶段插入数据的条数
    -s > /yang/load.log 将结果输出到指定文件
     

    加载数据时发生的错误:

    经过百度查询说:这个错误可以忽略不管:

    因为出现错误的原因:

    load加载数据的结果:

    经过百度查询结果的参数说明:

     到hbase shell下查看:load数据结果:这里我仅仅取了前5条记录

     

    4、运行run测试阶段

    bin/ycsb run hbase098 -P workloads/workloadb -cp /etc/hyperbase1/conf:/etc/hdfs1/conf -threads 10 -p table=usertable -p columnfamily=f1 -s > /yang/run1.log
     
    这后面加了-s > /yang/run1.log将结果输出到指定位置
    参数说明:
    -threads 10配置了并发线程个数
    -p operationcount=1000000 覆盖了workloada中operationcount=1000表示本次测试操作记录数为1000000(可配,不配就以workloadb下的为准)
    选择配置:
    -p measurementtype=timeseries -p timeseries.granularity=2000指明了YCSB客户端多长时间汇总一次延时,timeseries.granularity属性值的单位为1000milliseconds。所以这里的配置就表示2000s记录一次本2000s的平均延时。
    在run测试阶段也会报和load数据阶段一样的错误,可以忽略不管:
    run阶段测试结果:

     

  • 相关阅读:
    asp.net中页面传值的几种经典方法
    关于ASp.NEt方面的好书,不得不看啊!!!
    Qt Creator 窗体控件自适应窗口大小布局
    自己动手打造T9510E EMUIB502新功能
    OpenCV&Qt学习之四——OpenCV 实现人脸检测与相关知识整理
    Qt 中获取本机IP地址
    嵌入式Linux中GPS信息读取与处理
    OpenCV 学习资源整理
    新Outlook邮箱的客户端设置
    Qt 中显示中文
  • 原文地址:https://www.cnblogs.com/yfb918/p/10411810.html
Copyright © 2011-2022 走看看