第四年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写的初步测试中的表现的更多相关文章

  1. Hbase写数据,存数据,读数据的详细过程

    Client写入 -> 存入MemStore,一直到MemStore满 -> Flush成一个StoreFile,直至增长到一定阈值 -> 出发Compact合并操作 -> 多 ...

  2. 提高HBase写性能

    以下为使用hbase一段时间的三个思考,由于在内存充足的情况下hbase能提供比较满意的读性能,因此写性能是思考的重点.希望读者提出不同意见讨论 1 autoflush=false的影响 无论是官方还 ...

  3. 串口之完整封装包含发送和接收(windows+ubuntu已通过初步测试)(持续更新)

    这里下载源码 更新日志 16-08-2021 V1.0.3 1.修复接收数据没有将数据传递给应用层的bug 2.windows版本:设置接收数据相邻字节间间隔为5ms 24-09-2020 V1.0. ...

  4. WEB 业务测试中需要关注的问题

    汇总起来分为:    1.浏览器自身的一些操作,后退键,刷新键,样式兼容,多浏览器之间的一些操作 2.键盘快捷键的一些支持 3.所有前端校验,必须也在后端代码进行校验,验证后端是否校验可越过前端校验进 ...

  5. [转]移动App测试中的最佳做法

    Daniel Knott 用过各种不同编程语言和软件质量保证工具.他在软件开发和测试方面干了七年,自2010年起,他一直在德国汉堡的XING AG公司就职,几个项目里,比如XING调查和XING建议, ...

  6. 算法效果AB测试中的PV-UV不对称性

    (转载请注明原创于潘多拉盒子) 算法效果的AB测试,是指在相同的应用场景下,对比不同算法的效果.通常的做法是,按照PV或UV随机分配流量到算法上,计算算法的CTR或转化率进行对比.为了表述简单,我们假 ...

  7. 移动App测试中的最佳做法

    一说起软件测试,测试员想到肯定是去检查文件,功能,API,性能并确定软件是否安全,以及关于软件特定部分的其他事项.但是对于移动测试,测试员不得不基于用户移动使用模式考虑移动相关的功能. 本文是基于我的 ...

  8. python多线程在渗透测试中的应用

    难易程度:★★★ 阅读点:python;web安全; 文章作者:xiaoye 文章来源:i春秋 关键字:网络渗透技术 前言 python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天, ...

  9. HBase的java客户端测试(二)---DML操作

    测试准备 [首先同步时间:] for node in CloudDeskTop master01 master02 slave01 slave02 slave03;do ssh $node " ...

随机推荐

  1. LCA 学习算法 (最近的共同祖先)poj 1330

    Nearest Common Ancestors Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20983   Accept ...

  2. 利用HttpOnly来防御xss攻击

    xss的概念就不用多说了,它的危害是极大的,这就意味着一旦你的站点出现xss漏洞,就能够运行随意的js代码,最可怕的是攻击者利用js获取cookie或者session劫持,假设这里面包括了大量敏感信息 ...

  3. JAVA学习JSTL与EL

    一.基础 1.EL(Expression Language):为了使jsp写起来更加简单,提供了在Jsp中简化表达式的方法 2.JSTL:(JSP Standard Tag Library)jstl标 ...

  4. 使用order by和rownum时特别注意

    起因 在项目中有用到某表作为数据来源,在页面以列表的形式显示.使用的数据库是Oracle,分页的时候使用到了rownum这个关键字.列表有排序功能,自然也用到了order by.接下来问题出现了,我在 ...

  5. AND信号灯和信号灯集-----同步和互斥解决面向对象(两)

    AND信号 互斥的上述处理,它是针对仅在进程之间共享的一个关键资源方面.在一些应用.这是一个过程,需要在为了自己的使命后,获得两个或多个其他共享资源运行. 个进程A和B.他们都要求訪问共享数据D和E. ...

  6. Python日志输出格式和时间格式

    formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s","%Y%b%d-%H:%M:% ...

  7. Android - 数据存储 -存储文件

    Android使用的文件系统和其他平台的基本磁盘的文件系统很相似.这里将要介绍如何使用File API在Android文件系统中读写文件. File对象适合按顺序读写大量的数据.例如,适合图片文件或者 ...

  8. HDOJ 5188 zhx and contest 贪婪+01背包

    zhx and contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  9. zabbix 实现curl 显示器

    1.进入Configure->Templates 2. 新建一个模板 3.新建模板,并保存 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFpND ...

  10. Kotlin

    关于Kotlin,网上已有一些介绍的文章,包括Antonio Leiva的这组blog翻译稿.不过,我还是想跟进它们.翻译它们,以锻炼自己的英文翻译.各位高手发现问题,请及时“拍砖”. 原文题目:Ko ...