九、Hbase高频面试题

九、Hbase高频面试题,第1张

九、Hbase高频面试题 1、Hbase存储结构

2、RowKey设计原则

        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)基础优化

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5573648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存