hbase存储优化
1、上面的2张图主要说明hbase的存储特点
(1)、每个值(每条记录的每一个列的值)的存储,都完整的存储了rowkey、column family、column、版本(时间戳),以及该列的值。
这样其实很浪费存储空间。对应的最直接的存储优化方案就是缩短rowkey、column family、column、版本(时间戳)的长度。在建表的时候就把这几项设置的极其短。
(2)、hbase是列式存储,天生就适合进行压缩等优化。
(3)、也可以通过(合并多个记录为一条记录)减少rowkey来减少表的记录数,达到减少key查找的效果,从而提升查询性能。代价就是每次查询的结果需要解析拆开,并且读取的对象比原来的单个记录要大。
2、hbase的存储优化的方案选择:压缩还是编码
(1)、参照这篇文章,对比了hbase编码和压缩2种优化方案的优缺点
A、REFIX_TREE编码方式不仅能起到压缩的效果
B、而且比较省CPU和内存。
http://blog.csdn.net/javastart/article/details/51820212
(2)、下面这篇文章,列出了PREFIX_TREE编码方式的优点:
A、REFIX_TREE提升从DataBlock中查找数据的效率。
B、省内存和cpu。
http://zjushch.iteye.com/blog/1843793
3、具体的优化命令
==========hbase命令================================================
disable 'logs:radwa'
alter 'logs:radwa', NAME => 'info', DATA_BLOCK_ENCODING => 'PREFIX_TREE' #修改编码(此编码效果最好)
#alter 'logs:radwa', NAME => 'info', COMPRESSION => 'snappy' #修改压缩
enable 'logs:radwa' #enable表后压缩还不会生效, 需要立即生效
major_compact 'logs:radwa' #这个命令执行的时间会相当长, 会对整个集群的CPU, IO有大量的占用
==========hbase命令================================================
4、优化效果
线上实测500G的表,编码后变为140G,效果还是不错的。
至于查询效率的提升,我并没有测试。理论上是应该有提升的,当然您需要根据自己的业务实际选择自己的优化方式。
这里任然有巨大的优化空间,比如把rowkey等设置的比较短,也可以省下很多存储空间。
hbase存储优化的更多相关文章
- hbase性能优化总结
hbase性能优化总结 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都 ...
- hbase 存储结构和原理
HBase的表结构 建表时要指定的是:表名.列族 建表语句 create 'user_info', 'base_info', 'ext_info' 意思是新建一个表,名称是user_info,包含两个 ...
- 解密OpenTSDB的表存储优化【转】
https://yq.aliyun.com/articles/54785 摘要: 本篇文章会详细讲解OpenTSDB的表结构设计,在理解它的表结构设计的同时,分析其采取该设计的深层次原因以及优缺点.它 ...
- HBase性能优化方法总结(转)
原文链接:HBase性能优化方法总结(一):表的设计 本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. ...
- 用mapreduce来操作hbase的优化
(1)scan.setCacheBlocks(false); 初始化map任务 TableMapReduceUtil.initTableMapperJob 本次mr任务scan的所有数据不放在缓 ...
- HBASE的优化、hadoop通用优化,Linux优化,zookeeper优化,基础优化
HBase 的优化3.1.高可用在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果Hmaster 挂掉了,那么整个 HBa ...
- HBase的优化
HBase的优化 高可用 在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果 Hmaster 挂掉了,那么整个 HBase ...
- Hbase性能优化
HBase性能优化方法总结 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户 ...
- HBase存储及读写原理介绍
一.HBase介绍及其特点 HBase是一个开源的非关系型分布式数据库,它参考了谷歌的BigTable建模,实现的编程语言为Java.它是Apache软件基金会的Hadoop项目的一部分,运行于HDF ...
随机推荐
- linkin大话设计模式--命令模式
linkin大话设计模式--命令模式 首先考虑一种应用情况,某个方法需要完成某一个功能,这个功能的大部分功能已经确定了,但是有可能少量的步骤没法确定,必须等到执行这个方法才可以确定. 也就是说,我们写 ...
- 图片文档倾斜矫正算法 附完整c代码
2年前在学习图像算法的时候看到一个文档倾斜矫正的算法. 也就是说能将一些文档图像进行旋转矫正, 当然这个算法一般用于一些文档扫描软件做后处理 或者用于ocr 文字识别做前处理. 相关的关键词: 抗倾斜 ...
- Jmeter_24个常用函数(分享帖)
JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便. JMeter函数是一种特殊值,可用于除测试计划外的任何组件. 函数调用的格式如下所示:${__functionName(var1 ...
- 康盛(discuz )牛逼的PHP加解密算法函数
1.前言 康盛的 authcode 函数很牛叉,是一个具有有效期的加解密函数,同一个字符每次加密所产生的结果都是不一致的,并且可以自定义设置过期时间. 设计原理:authcode 是使用异或运算进行加 ...
- 高仿bootstrap样式的分页插件
链接:https://pan.baidu.com/s/1jKgn2hK 密码:whwl 不知道是自己的第几个分页插件了,以前写一个丢一个,桌面,U盘,移动硬盘.想用的时候找不到,这次传网上来.大家帮忙 ...
- iOS-MD5加密、SHA1加密
1.MD5加密 ///MD5加密************************************** + (NSString *)md5:(NSString *)inputString{ co ...
- RHEL7.2安装
先在系统启动的时候按下Del键(有些系统是F2键)进入BIOS,设置从光盘启动. 系统只有2个USB口时,1个要接光驱,另外1个口不能同时接键盘和鼠标,可以接1个USB集线器,键盘和鼠标同时接入到集线 ...
- restful framework 认证源码流程
一.请求到来之后,都要先执行dispatch方法,dispatch方法方法根据请求方式的不同触发get/post/put/delete等方法 注意,APIView中的dispatch方法有很多的功能 ...
- Xcode iOS布局autolayout和sizeclass的使用
一.关于自动布局(Autolayout) 在Xcode中,自动布局看似是一个很复杂的系统,在真正使用它之前,我也是这么认为的,不过事实并非如此. 我们知道,一款iOS应用,其主要UI组件是由一个个相对 ...
- centos7 网桥的配置
centos7下配置网桥,两个步骤:1.新建网桥配置2.修改网卡配置 新建br0 网桥配置 在/etc/sysconfig/network-scripts/目录下新建ifcfg-br0,添加如下配置信 ...