HBase性能测试
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了HBase性能测试,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4064字,纯文字阅读大概需要6分钟。
内容图文
测试工具YCSB
自带有hbase pe,但是pe只能统计每个线程执行的情况,不能统计整体的状态。所以还是推荐使用YCSB
https://github.com/brianfrankcooper/YCSB
使用参考文档:
https://github.com/brianfrankcooper/YCSB/wiki
前置准备
一:首先确认集群配置,比如cpu、内存、磁盘、网络带宽
二:创建hbase表,设置表重要属性,比如使用哪种压缩,哪种块编码等等。一般也会创建好预分区,在创建预分区的时候,由于YCSB默认生成的rowkey是以“user”开头的,所以创建预分区应做对应调整,比如:
create ‘ycsb01‘,{NAME => ‘f1‘,COMPRESSION => ‘SNAPPY‘},SPLITS => [‘user1‘,‘user2‘,‘user3‘,‘user4‘,‘user5‘,‘user6‘,‘user7‘,‘user8‘,‘user9‘]
三:定义我们的workload,YCSB自带的也有几种workload,可以参照来定义我们自己的负载情况,
比较核心的配置如下:
recordcount: YCSB load命令的参数,指总数据条数 (default: 1000) Operationcount: YCSB run(运行压力测试)命令的参数,默认值1000表示默认选取数据库中的1000条数据进行压力测试。对于workloada这种测试场景,就意味着读数据在500左右,写数据也在500左右 ? fieldcount: 字段个数 (default: 10) fieldlength: 每个字段的长度 (default: 100) minfieldlength: 每个字段最小的长度 (default: 1) readallfields: 是否读取所有字段(default: true) writeallfields: 是否写/更新所有字段 (default: false) readproportion: read操作比例 (default: 0.95) updateproportion: update操作比例 (default: 0.05) insertproportion: insert操作比例 (default: 0) scanproportion: scan操作比例 (default: 0) ? requestdistribution: 使用哪种数据分布方式,主要有uniform, zipfian, hotspot, sequential, exponential or latest可选 (default: uniform) Uniform(等概率随机选择记录)、Zipfian(随机选择记录,存在热纪录)和Latest(近期写入的记录是热记录)。 ? minscanlength: scan时候,最小的scan条数(default: 1) maxscanlength: scan时候,最大的scan条数(default: 1000) scanlengthdistribution: scan时候,怎么选择scan的条数,[scan的条数介于1到maxscanlength之间] (default: uniform) ? insertstart: 在并行执行loads和runs的时候,定义当前YCSB实例的起始数据 (default: 0) insertcount: 在并行执行loads和runs的时候,定义当前YCSB实例要操作的数据条数 (default: recordcount) ? fieldnameprefix: 字段名的前缀 (default: “field”)
运行 Workload
运行workload大概有以下几个步骤:
-
选择符合场景的workload
-
配置合适的参数(比如客户端线程数)
-
执行Load阶段数据加载(workload有两个阶段,一个是loading阶段加载数据,一个是transactions阶段在这些数据上执行操作)
-
执行workload
执行Load
nohup ycsb_home/bin/ycsb load hbase12 -P workloads/workloada -cp ycsb_home/hbaseconf -p table=ycsb01 -p columnfamily=f1 -p threads=10 -s > ycsb_home/log/ycsb_load.log &
load:表示的是执行的load阶段
hbase12:对应hbase1.2版本
-P workloads/workloada:指定负载配置
-cp ycsb_home/hbaseconf:指定hbase client配置文件
-p table=ycsb01:指定hbase表
-p columnfamily=f1:指定hbase表的列簇
-p threads=10:指定ycsb线程数
-s:status,每隔10秒输出状态日志
日志分析
[OVERALL], RunTime(ms), 16487.0 [OVERALL], Throughput(ops/sec), 6065.384848668648 [OVERALL] 区显示测试总体情况 RunTime(ms) 运行总时间 Throughput(ops/sec) 吞吐量,每秒操作数 [TOTAL_GCS_PS_Scavenge], Count, 23.0 [TOTAL_GC_TIME_PS_Scavenge], Time(ms), 88.0 [TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.5337538666828411 [TOTAL_GCS_PS_MarkSweep], Count, 0.0 [TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0.0 [TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0 [TOTAL_GCs], Count, 23.0 [TOTAL_GC_TIME], Time(ms), 88.0 [TOTAL_GC_TIME_%], Time(%), 0.5337538666828411 [TOTAL_GC*] 区显示垃圾回收情况 [TOTAL_GCS_PS_Scavenge], Count, 23.0 Parallel Scavenge 回收次数 [TOTAL_GC_TIME_PS_Scavenge], Time(ms), 88.0 Parallel Scavenge 回收时间 [TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.533 Parallel Scavenge 回收时间百分比 [TOTAL_GCS_PS_MarkSweep], Count, 0.0 PS MarkSweep 回收次数 [TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0.0 PS MarkSweep 回收时间 [TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0 PS MarkSweep 回收时间百分比 [TOTAL_GCs], Count, 23.0 全局 GC 次数 [TOTAL_GC_TIME], Time(ms), 88.0 全局 GC 时间 [TOTAL_GC_TIME_%], Time(%), 0.533753866 全局 GC 时间百分比 [READ], Operations, 50011.0 [READ], AverageLatency(us), 4418.49443122513 [READ], MinLatency(us), 1584.0 [READ], MaxLatency(us), 208895.0 [READ], 95thPercentileLatency(us), 8207.0 [READ], 99thPercentileLatency(us), 11463.0 [READ], Return=OK, 50011 [READ] 区显示读取操作的统计结果 Operations 总操作数 AverageLatency(us) 平均延迟(微秒) MinLatency(us) 最小延迟 MaxLatency(us) 最大延迟 95thPercentileLatency(us) p95延迟 99thPercentileLatency(us) p99延迟 Return=OK, 50011 结果(正确),总操作数 ? [CLEANUP](清理操作)、[UPDATE](更新操作)等等和 [READ] 区类似
执行Run
nohup ycsb_home/bin/ycsb run hbase12 -P workloads/workloada -cp ycsb_home/hbaseconf -p table=ycsb01 -p columnfamily=f1 -p threads=10 -s > ycsb_home/log/ycsb_run.log &
注意:Load阶段其实就是装载数据即往hbase中插入数据,workload文件中的recordcount就是将要插入的条数。run阶段就是对hbase进行各种操作,operationcount就是操作数,因此load阶段必须要正确执行完成,否则在run阶段会有类似于[READ-FAILED]之类的错误。
原文:https://www.cnblogs.com/zz-ksw/p/13724406.html
内容总结
以上是互联网集市为您收集整理的HBase性能测试全部内容,希望文章能够帮你解决HBase性能测试所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。