博客
关于我
Hbase压力测试
阅读量:614 次
发布时间:2019-03-14

本文共 2649 字,大约阅读时间需要 8 分钟。

一、测试HBase单机模式性能

通过对HBase单机模式进行测试,我们使用自带的测试工具对性能进行了详细测量。以下是实验的主要内容和结果。

测试数据插入

测试表[TestTable]包含两个列族:info和data。每行的rowkey插入的数据量为900个英文字符。以下为示例值:value=XXXXXXXXXXXXXXXXJJJJJJJJSSSSSSSSRRRRRRRRFFFFFFFFQQQQQQQQKKKKKKKKQQQQQQQQBBBBBBBBJJJJJJJJDDDDDDDDXXXXXXXXWWWWWWWWJJJJJJJJZZZZZZZZUUUUUUUUBBBBBBBBEEEEEEEEBBBBBBBBLLLLLLLLFFFFFFFFHHHHHHHHXXXXXXXXCCCCCCCCFFFFFFFFPPPPPPPPGGGGGGGGTTTTTTTTKKKKKKKKPPPPPPPPIIIIIIIIXXXXXXXXUUUUUUUUPPPPPPPPDDDDDDDDEEEEEEEEIIIIIIIIJJJJJJJJOOOOOOOONNNNNNNNEEEEEEEEBBBBBBBBIIIIIIIIVVVVVVVVPPPPPPPPTTTTTTTTZZZZZZZZWWWWWWWWXXXXXXXXFFFFFFFFKKKKKKKKOOOOOOOONNNNNNNNNNNNNNNNYYYYYYYYEEEEEEEEUUUUUUUURRRRRRRRDDDDDDDDWWWWWWWWIIIIIIIIPPPPPPPPJJJJJJJJPPPPPPPPPPPPPPPPJJJJJJJJYYYYYYYYJJJJJJJJHHHHHHHHLLLLLLLLZZZZZZZZMMMMMMMMMMMMMMMMLLLLLLLLZZZZZZZZHHHHHHHHKKKKKKKKAAAAAAAAZZZZZZZZFFFFFFFFTTTTTTTTSSSSSSSSCCCCCCCCOOOOOOOOFFFFFFFFEEEEEEEEUUUUUUUUn...

测试环境配置

测试环境为Centos7.2 64位系统, JDK版本为1.8.0_91。HBase版本为hbase-1.0.0-cdh5.5.2,采用单机模式安装,各参数基本为默认值。

单机模式下的服务器配置

单 CPU,内存为1024MB。该配置下,HBase在处理大规模数据时表现较为接近理想状态。

性能测试结果

测试表插入数据量对平均总耗时(秒)和每秒写速率(条/s)的影响结果如下:

插入数据量(条) 测试次数平均总耗时(s) 每秒写速率(条/s)
1000 2.1 476.20
10000 3.1 3225.81
50000 6.76 7396.45
80000 9.02 8869.18
90000 9.05 9944.75
95000 11.26 8436.94
100000 13.38 7473.84
150000 20.08 7470.12
175000 23.91 7160.91

注意事项

  • 当插入数据量小于100条时,所花时间基本维持在1.8秒到2秒之间,并不是插入数据量越少所花时间越少。例如,插入一条数据和插入100条数据所用的时间基本差不多。
  • 当插入数据量超过180000条时,HMaster进程会变得非常吃力,并且偶尔会出现挂掉现象。当数据量超过一定限制后,可能会直接报出OfMemoryError。
  • HBase的性能评估

    在HBase中创建相应表命令:

    hbase(main):001:0> create 'TestTable','info'

    测试代码

    在HBase中使用HTable类进行数据插入,代码如下:

    import java.io.IOException;import java.util.ArrayList;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.client.Put;public class InsertContactJava2 {public static long startTime;public static long endTime;public static void main(String[] args) throws IOException {startTime = System.currentTimeMillis();insert_one();endTime = System.currentTimeMillis();long costTime = endTime - startTime;System.out.println("cost time = " + costTime*1.0/1000+"s");}public static void insert_one() throws IOException {Configuration conf = HBaseConfiguration.create();HTable table = new HTable(conf,"TestTable");ArrayList

    list = new ArrayList
    ();int count1 = 50000;for(int i=0;i<count1;i++){Put p = new Put("cfrowkey" + i);p价值
    文本值,将它添加到表中。p put("info", "data" + i);list.add(p);}try{HTable.flush();} catch (IOException e) {}}}

    注意:对于HBase 1.0版本,与Hadoop 2.x兼容性存在差异。在Hadoop 2.x环境下,HBase的性能表现可能会受到较大影响。在Hadoop 2.x中,性能测试结果显示随着数据量增加,HBase的性能会迅速下降。

    通过以上测试,可以看出在HBase单机模式下,随着数据量的增加,写入性能表现出一定的下降趋势。建议在生产环境中根据实际需求合理选择HBase版本和配置参数。

    转载地址:http://tbnoz.baihongyu.com/

    你可能感兴趣的文章
    could not initialize proxy - no Session (SSH)
    查看>>
    cmd编译.java文件 : java:720: 错误: 编码GBK的不可映射字符 Why ? ? ? ?
    查看>>
    【Jquery】获取当前窗口的宽度值/高度值
    查看>>
    Android 架构组件 – 让天下没有难做的 App
    查看>>
    启动MongoDB出现1053错误
    查看>>
    Gym 102770 B-Bin Packing Problem 2020浙江省省赛 (线段树 + set)
    查看>>
    centOS7.6安装nginx
    查看>>
    [python复习6]正则表达式
    查看>>
    Flask操作SQLAlchemy
    查看>>
    JavaScript和Java重要的相异点
    查看>>
    网络对抗技术-Exp2-后门原理与实践 20181314
    查看>>
    能解决数据可视化大屏需求的3款可视化工具
    查看>>
    欢迎来到小迪博客
    查看>>
    【Altium Designer21】工作栏中文解析
    查看>>
    [87]用secureCRT连接虚拟机中的Ubuntu系统,出现“远程主机拒绝连接”错误
    查看>>
    Shell脚本防DNS攻击检测并删除肉机IP
    查看>>
    如何在VSCode中定制JSON的IntelliSense
    查看>>
    椭圆曲线的定义
    查看>>
    多代理区块链框架客户端的操作
    查看>>
    RSA操作中的公钥和私钥的生成
    查看>>