雅虎(ycsb)测试hbase(压测)"/>
雅虎(ycsb)测试hbase(压测)
一、下载ycsb 0.10包
.10.0/ycsb-0.10.0.tar.gz
二、上传到linux,解压
tar -zxvf ycsb-0.10.0.tar.gz 三、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阶段测试结果:
转载于:.html
更多推荐
雅虎(ycsb)测试hbase(压测)
发布评论