工作中对hbase压缩格式进行了测试,记录一下.
1.先从hbase的测试表(snappy格式)读取数据到hdfs,计算读取hbase snappy格式表的效率:
开始时间:2021-12-07 10:06:04
结束时间:2021-12-07 10:38:04
2.写入数据到hbase的测试表(snappy格式),计算写入hbase snappy格式表的效率:
开始时间:2021-12-07 11:03:00
结束时间:2021-12-07 12:55:44
3.写入数据到hbase的测试表(gz格式),计算写入hbase gz格式表的效率:
开始时间:2021-12-07 13:21:06
结束时间:2021-12-07 14:43:12
4.最后从hbase的测试表(gz格式)读取数据到hdfs,计算读取hbase gz格式表的效率:
开始时间:2021-12-07 14:53:00
结束时间:2021-12-07 15:25:17
汇总:
| hbase的snappy和gz压缩格式读取/写入对比 | ||||||||
| 类型 | 数据量 | 压缩格式 | 开始时间 | 结束时间 | 耗时(秒) | cpu消耗最大值 | cpu消耗平均值值 | 总消耗(耗时*cpu平均值) |
| 写入 | 2207114条 | snappy | 2021-12-07 11:03:00 | 2021-12-07 12:55:44 | 6764 | 15.24 | 6 | 40584 |
| gz | 2021-12-07 13:21:06 | 2021-12-07 14:43:12 | 4926 | 33.49 | 20 | 98520 | ||
| 读取 | snappy | 2021-12-07 10:06:04 | 2021-12-07 10:38:04 | 1920 | 3.45 | 2 | 3840 | |
| gz | 2021-12-07 14:53:00 | 2021-12-07 15:25:17 | 1937 | 3.55 | 2 | 3874 | ||
| 读取 | 两种压缩格式,对于读取来说效率和资源使用情况几乎没有差异,不需要考虑性能和机器负载问题. | |||||||
| 写入 | gz比snappy压缩写入速度更快,比snappy约快27%,消耗cpu更高,cpu平均消耗约是snappy的3.4倍左右,总消耗约是snappy的2.4倍左右.gz的压缩率约是snappy的2.6倍. | |||||||
| 结论 | p环境cpu使用率约在30%,delivery_message表单副本每个月增加6t左右,json表每月约增加60t左右.按此统计,delivery_message最多占用cpu总使用率的十分之一,也就是3%.根据以上测试数据可得:delivery_message表使用gz压缩,读取几乎无影响,写入对cpu的消耗增加约在4.2%~7.2%左右. | |||||||
对集群cpu的影响:
测试机器详情:
| 测试机器配置 | ||||
| ip | 角色 | 分工 | cpu | 内存 |
| 3 | namenode-01 | 跑脚本 | 8核 | 16G |
| 4 | datanode-01 | hbase-regionserver | 8核 | 16G |
| 5 | datanode-02 | hbase-regionserver | 8核 | 16G |
| 6 | datanode-03 | hbase-regionserver | 8核 | 16G |



