一、下载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阶段测试结果:

雅虎(ycsb)测试hbase(压测)的更多相关文章

  1. YCSB测试HBase远程完全分布式集群

    写在前面 本文只讲一个很简单的问题,YCSB对HBase集群的测试.虽然网上有很多介绍YCSB测试HBase的文章,但都是针对本地HBase伪分布式集群的.大家都知道,稍微正式一些的压测都会要求测试客 ...

  2. .net HttpClient类(System.Net.Http) c#并发使用测试、压测

    .net HttpClient类(System.Net.Http) c#并发使用测试.压测

  3. ycsb 测试Hbase性能

    下载 github:https://github.com/brianfrankcooper/YCSB/releases/tag/0.10.0 wget https://github.com/brian ...

  4. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

  5. 双十一临近,怎样让买家流畅地秒杀? ——腾讯WeTest独家开放电商产品压测服务

    WeTest 导读 十一月临近,一年一度的电商大戏"双十一"又将隆重出场,目前各大商家已经开始各类优惠券的发放,各类大促的商品表单也已经提前流出,即将流入各个用户的购物车中. 作为 ...

  6. 开发人员必备工具 —— JMeter 压测

    在接口开发完以后,开发人员应该学会对自己的接口先进行压测一下,虽然压测的结果并不一定准确,也不能完全反映真实情况,但是如果有问题的话多少是可以看出的,而且也可以及早做优化,做到心里有底.否则,等测试进 ...

  7. 京东全链路压测军演系统(ForceBot)架构解密

    摘要:全链路压测是应对电商大促容量规划最有效的手段,如何有效进行容量规划是其中的架构关键问题.京东在全链路压测方面做过多年尝试,本文转载京东商城基础平台技术专家文章,介绍其最新的自动化压测 Force ...

  8. Haproxy压测

    目的:测试Haproxy压测情况 环境: Ha服务器:8核16G虚机,后端6个2核4G,压测客户端3个2核4G 安装和优化: 一.Haproxy #cd /opt/soft #wget http:// ...

  9. 性能压测中的SLA,你知道吗?

    本文是<Performance Test Together>(简称PTT)系列专题分享的第6期,该专题将从性能压测的设计.实现.执行.监控.问题定位和分析.应用场景等多个纬度对性能压测的全 ...

随机推荐

  1. 第6章 Python中的动态可执行方法目录

    第6.1节 Python代码编译 第6.2节 Python特色的动态可执行方法简介 第6.3节 Python动态执行之动态编译的compile函数 第6.4节 Python动态表达式计算:eval函数 ...

  2. PyQt(Python+Qt)学习随笔:QAbstractItemView的editTriggers属性以及平台编辑键(platform edit key )

    老猿Python博文目录 老猿Python博客地址 editTriggers属性 editTriggers属性用于确认哪些用户操作行为会触发ItemView中的数据项进入编辑模式. 此属性是由枚举类E ...

  3. Python调用云服务器AWVS13API接口批量扫描(指哪打哪)

    最近因为实习的原因,为了减少一部分的工作量,在阿里云服务器上搭建了AWVS扫描器 方便摸鱼 但是发现AWVS貌似没有批量添加的方法,作者只好把整理的URL.txt捏了又捏 手动输入是不可能手动输入的, ...

  4. vue优点

    低耦合.视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View ...

  5. Codeforces Edu Round 66 A-E

    A. From Hero to Zero 通过取余快速运行第一步即可.由于\(a \% b (a >= b) <= \frac{a}{2}\).所以总复杂度不超过\(O(log_2n)\) ...

  6. 九、git学习之——git基本命令全总结

    初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: git add <file>,注意,可反复多次使用,添加多个文件: 使用命令git commit,完成. ...

  7. 深入分析 Java、Kotlin、Go 的线程和协程

    前言 协程是什么 协程的好处 进程 进程是什么 进程组成 进程特征 线程 线程是什么 线程组成 任务调度 进程与线程的区别 线程的实现模型 一对一模型 多对一模型 多对多模型 线程的"并发& ...

  8. I/O方式(本章最重要)

    目录 程序查询方式 程序查询方式接口结构 例题 本节回顾 程序中断方式 中断的基本概念 工作流程 中断请求 分类 中断请求标记 中断响应 判优实现 优先级设置 中断处理过程 中断隐指令 硬件向量法 中 ...

  9. SpringBoot基于JustAuth实现第三方授权登录

    1. 简介   随着科技时代日渐繁荣,越来越多的应用融入我们的生活.不同的应用系统不同的用户密码,造成了极差的用户体验.要是能使用常见的应用账号实现全应用的认证登录,将会更加促进应用产品的推广,为生活 ...

  10. Java内存模型(MESI、内存屏障、volatile和锁及final内存语义)

    JMM (Java内存模型) Java线程的实现 实现线程主要有三种方式,Java线程从JDK1.3后采用第一种方式实现: 使用内核线程实现(1:1实现) 使用用户线程实现(1:N实现) 使用用户线程 ...