1)rowkey长度原则
2)rowkey散列原则
3)rowkey唯一原则
3、 RowKey如何设计1)生成随机数、hash、散列值
2)字符串反转
4、 Hbase 的特点是什么1)大:一个表可以有数十亿行,上百万列;
2)无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一
张表中不同的行可以有截然不同的列;
3)面向列:面向列(族)的存储和权限控制,列(族)独立检索;
4)稀疏:空(null)列并不占用存储空间,表可以设计的非常稀疏;
5)数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元
格插入时的时间戳;
6)数据类型单一:Hbase 中的数据都是字符串,没有类型。
5、Hbase 优化方式(1)高可用
在 Hbase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果 Hmaster 挂掉了,那么整个 Hbase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 Hbase 支持对 Hmaster 的高可用配置。
(2)预分区
每一个 region 维护着 startRow 与 endRowKey,如果加入的数据符合某个 region 维护的rowKey 范围,则该数据交给这个 region 维护。那么依照这个原则,我们可以将数据所要投放的分区提前大致的规划好,以提高 Hbase 性能 .
(3)RowKey 设计
一条数据的唯一标识就是 rowkey,那么这条数据存储于哪个分区,取决于 rowkey 处于哪个一个预分区的区间内,设计 rowkey 的主要目的 ,就是让数据均匀的分布于所有的 region中,在一定程度上防止数据倾斜。
(4)7.4 内存优化
Hbase *** 作过程中需要大量的内存开销,毕竟 Table 是可以缓存在内存中的,一般会分配整个可用内存的 70%给 Hbase 的 Java 堆。但是不建议分配非常大的堆内存,因为 GC 过程持续太久会导致 RegionServer 处于长期不可用状态,一般 16~48G 内存就可以了,如果因为框架占用内存过高导致系统内存不足,框架一样会被系统服务拖死。
(5)基础优化
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)