博客
关于我
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/

    你可能感兴趣的文章
    iOS_Runtime3_动态添加方法
    查看>>
    Leetcode第557题---翻转字符串中的单词
    查看>>
    Problem G. The Stones Game【取石子博弈 & 思维】
    查看>>
    Java多线程
    查看>>
    openssl服务器证书操作
    查看>>
    expect 模拟交互 ftp 上传文件到指定目录下
    查看>>
    PDF.js —— vue项目中使用pdf.js显示pdf文件(流)
    查看>>
    我用wxPython搭建GUI量化系统之最小架构的运行
    查看>>
    我用wxPython搭建GUI量化系统之多只股票走势对比界面
    查看>>
    selenium+python之切换窗口
    查看>>
    重载和重写的区别:
    查看>>
    搭建Vue项目步骤
    查看>>
    账号转账演示事务
    查看>>
    idea创建工程时错误提醒的是architectCatalog=internal
    查看>>
    SpringBoot找不到@EnableRety注解
    查看>>
    简易计算器案例
    查看>>
    在Vue中使用样式——使用内联样式
    查看>>
    Find Familiar Service Features in Lightning Experience
    查看>>
    Explore Optimization
    查看>>
    连接Oracle数据库经常报错?关于listener.ora和tnsnames.ora文件的配置
    查看>>