本文共 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 |
注意事项
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
注意:对于HBase 1.0版本,与Hadoop 2.x兼容性存在差异。在Hadoop 2.x环境下,HBase的性能表现可能会受到较大影响。在Hadoop 2.x中,性能测试结果显示随着数据量增加,HBase的性能会迅速下降。
通过以上测试,可以看出在HBase单机模式下,随着数据量的增加,写入性能表现出一定的下降趋势。建议在生产环境中根据实际需求合理选择HBase版本和配置参数。
转载地址:http://tbnoz.baihongyu.com/