HBase写的初步测试中的表现
底
第四年HBase。在上线的机HBase集群做一个初步的测试写入性能。下面具体说明做测试内容。
说明
HBase周围环境
0.96版本号,8台region server。默认配置
写数据说明
单column family。两个column qualifier的值为字符串+随机8位正整数,Row Key为两个quailifer值相连后串上随机Long
比方:val1 = dd1977285, val2 =cc6549921, rowkey = rondom.nextLong() + val1 + val2
測试涵盖到的维度
单线程、多线程比較
Rowkey不hash、Rowkey MD5 Hash (hash后每份rowkey等长,分发Region Server时随机性更好)
单Put写(每次Put一次RPC)、批量写(带write buffer的刷写)
批量写情况下write buffer的大小设置
測试未涵盖到的维度
WAL是开启的(线上应用不推荐关闭WAL来换取写速度)
备份数没有改(3份)
每台Region Server的RPC handler数目没有设定(本次单机測试中,RPC响应肯定不会是瓶颈)
没有使用压缩(数据量小)
没有比較ColumnQualifier数目增长
关于Region Server很多其它的系统设置都是默认的(请求数分布、region文件块大小设置及Compaction影响、Split文件数阀值等等)
结果
測试结果比較:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGVsaWNr/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
总结
批量写性能提升不少
线上应用最好是禁用buffer刷写功能的。即每个Put一次RPC写。只是看到这样的情况下写速度慢。考虑到机器、网络环境的区别的话。预计能上1K
启用buffer刷写功能的话,要避免未flush的put记录丢失。(HTable在close的时候最后是会自己主动flush,我们在写服务节点故障的时候也须要flush一次)
Rowkey哈希后性能有小量提升
Rowkey Hash之后对写性能的确有小量提升,但假设要基于rowkey做范围查找的话,rowkey可能不适合hash,具体看业务场景再考虑。
单线程每秒上万行写能力
本机上单线程在开启writerbuffer刷写后,每秒写行数轻松上万。
多线程下,本机上每个线程最多到每秒7K行的速度,相信考虑到机器、网络环境的区别的话,也能上万。
并发写能力乐观
本机没有模拟到多个节点上百线程的并发写场景。只是依据前一点看的话,还是乐观的。并且本次測试的集群级别的设置都是默认的,集群规模也一般,有非常多集群级别的优化手段。
等项目开发到一定阶段时候,会測试多节点上百线程并发写的场景,且依据对HBase逐步的了解,之后会有很多其它经验,相关測试报告再具体产出,这份初步的測试就大致先了解下。
掌声 :)
版权声明:本文博主原创文章,博客,未经同意不得转载。
HBase写的初步测试中的表现的更多相关文章
- Hbase写数据,存数据,读数据的详细过程
Client写入 -> 存入MemStore,一直到MemStore满 -> Flush成一个StoreFile,直至增长到一定阈值 -> 出发Compact合并操作 -> 多 ...
- 提高HBase写性能
以下为使用hbase一段时间的三个思考,由于在内存充足的情况下hbase能提供比较满意的读性能,因此写性能是思考的重点.希望读者提出不同意见讨论 1 autoflush=false的影响 无论是官方还 ...
- 串口之完整封装包含发送和接收(windows+ubuntu已通过初步测试)(持续更新)
这里下载源码 更新日志 16-08-2021 V1.0.3 1.修复接收数据没有将数据传递给应用层的bug 2.windows版本:设置接收数据相邻字节间间隔为5ms 24-09-2020 V1.0. ...
- WEB 业务测试中需要关注的问题
汇总起来分为: 1.浏览器自身的一些操作,后退键,刷新键,样式兼容,多浏览器之间的一些操作 2.键盘快捷键的一些支持 3.所有前端校验,必须也在后端代码进行校验,验证后端是否校验可越过前端校验进 ...
- [转]移动App测试中的最佳做法
Daniel Knott 用过各种不同编程语言和软件质量保证工具.他在软件开发和测试方面干了七年,自2010年起,他一直在德国汉堡的XING AG公司就职,几个项目里,比如XING调查和XING建议, ...
- 算法效果AB测试中的PV-UV不对称性
(转载请注明原创于潘多拉盒子) 算法效果的AB测试,是指在相同的应用场景下,对比不同算法的效果.通常的做法是,按照PV或UV随机分配流量到算法上,计算算法的CTR或转化率进行对比.为了表述简单,我们假 ...
- 移动App测试中的最佳做法
一说起软件测试,测试员想到肯定是去检查文件,功能,API,性能并确定软件是否安全,以及关于软件特定部分的其他事项.但是对于移动测试,测试员不得不基于用户移动使用模式考虑移动相关的功能. 本文是基于我的 ...
- python多线程在渗透测试中的应用
难易程度:★★★ 阅读点:python;web安全; 文章作者:xiaoye 文章来源:i春秋 关键字:网络渗透技术 前言 python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天, ...
- HBase的java客户端测试(二)---DML操作
测试准备 [首先同步时间:] for node in CloudDeskTop master01 master02 slave01 slave02 slave03;do ssh $node " ...
随机推荐
- ZOJ 1203 Swordfish 旗鱼 最小生成树,Kruskal算法
主题链接:problemId=203" target="_blank">ZOJ 1203 Swordfish 旗鱼 Swordfish Time Limit: 2 ...
- EasyUI实战经验总结(转)
最近公司培训EasyUI,就做下总结吧,给有需要的人,源码在文章最后. 1.最常用的表格 ? 1 2 3 <div class="easyui-panel" data-opt ...
- sizeof运营商
sizeof它是C语言的关键字,它计算对象所占用的字节数.采用sizeof通过计算对象的大小,占用的对象是一个良好的编程习惯二手. ★你得到的内置型尺寸 一些内置类型的大小会随着体系结构的不同而不同, ...
- SQL Server数据库附加失败:错误5120和错误950
再次敲机房,想參考曾经的物理模型,结果在附加数据库这一环节出现了点问题,以下总结一下. 1.附加数据库失败,错误5120 对于这样的错误,我在网上搜集了一下,主要有下面几种解决的方法: 方法一:将要附 ...
- 黑马程序猿——java基金会--jdk、变量
学习内容: 1.Java发展历史 2.jdk和jre的差别,功能. 3.jdk和jre的下载和安装 4.配置环境.path和classpath 5.helloworld程序 6.进制之间的转换 7.凝 ...
- 猫学习IOS(四)UI半小时就搞定Tom猫
阿土 首先对影响 下载项目的源材料: Tom猫游戏代码iOS 素材http://blog.csdn.net/u013357243/article/details/44457357 效果图 以前风靡一时 ...
- This Android SDK requires Android Developer Toolkit version 22.6.2 or above.
今天,在android SDK升级时间,我遇到上述错误,经过一番努力仍克服. 解决方法:android-sdk-windows\tools\lib中间plugin.prop在文档 plugin.ver ...
- MySQL存储过程:用户授权量
写这些脚本需求放缓的调查记录到数据库,方便观看. 1. 因为默认mysql.slow_log表使用csv数据引擎,该数据不支持指数,因此,有必要改变MyISAM发动机.和query_time字段索引, ...
- SqlServer 添加列并赋值
有个需求,需要给某张表添加一列并且赋值,分解需求,一共分两部走: 添加列 赋值 两个功能都不难,很快实现. --add column alter table Med_Summary_Template ...
- POJ1458 Common Subsequence 【最长公共子序列】
Common Subsequence Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37614 Accepted: 15 ...