美文网首页
HBase的Rowkey设计的3个原则

HBase的Rowkey设计的3个原则

作者: 陌染007 | 来源:发表于2020-09-03 14:13 被阅读0次

一、rowkey长度原则

rowkey是一个二进制码流,可以为任意字符串,最大长度为64kb,实际应用中一般为10-100bytes,它以byte[]形式保存,一般设定成定长。

一般越短越好,不要超过16个字节,注意原因如下:

1、目前操作系统都是64位系统,内存8字节对齐,控制在16字节,8字节的整数倍利用了操作系统的最佳特性。

2、hbase将部分数据加载到内存当中,如果rowkey过长,内存的有效利用率就会下降。

二、rowkey散列原则

如果rowkey按照时间戳的方式递增,不要将时间放在二进制码的前面,建议将rowkey的高位字节采用散列字段处理,由程序随即生成。低位放时间字段,这样将提高数据均衡分布,各个regionServer负载均衡的几率。

如果不进行散列处理,首字段直接使用时间信息,所有该时段的数据都将集中到一个regionServer当中,这样当检索数据时,负载会集中到个别regionServer上,造成热点问题,会降低查询效率。

三、rowkey唯一原则

必须在设计上保证其唯一性,rowkey是按照字典顺序排序存储的,因此,设计rowkey的时候,要充分利用这个排序的特点,将经常读取的数据存储到一块,将最近可能会被访问的数据放到一块。但是这里的量不能太大,如果太大需要拆分到多个节点上去。

所以良好的rowkey设计,应当遵循三大原则,并且能让数据分散,从而避免热点问题。

相关文章

  • HBase-interview-questions

    一 HBase存储结构 HBase结构图示 二 rowkey设计原则 1️⃣ rowkey长度原则 : 建议越短越...

  • HBASE中column family的设计,rowkey的设计

    HBASE中column family的设计,rowkey的设计,以及row key的设计原则问题原创道法—自然 ...

  • Hbase创建前缀布隆过滤器

    HBASE如何提升根据rowkey前缀扫描? 如果rowkey设计为: rowkey= #

  • HBase RowKey设计原则(全面)

    这段时间实在太忙了,工作和备考几乎用尽了所有时间,以前的爱好都渐渐远离了,现在也就更新博客这个小喜好了,每天看到日...

  • Hbase 入门

    Hbase简介 参考:Hbase技术详细学习笔记 如何合理的设计HBase RowKey? Hbase是分布式、面...

  • HBase框架基础(五)

    * HBase框架基础(五) 本节主要介绍HBase中关于分区的一些知识。 * HBase的RowKey设计 我们...

  • hbase:rowkey的设计

    hbase的rowkey设计决定了数据的分区和查询的方式,是使用hbase前一定要想清楚的,以下简单列举了设计hb...

  • HBase的rowkey设计

    HBase是三维有序存储的,通过rowkey(行键),column key(column family和quali...

  • HBase的rowkey设计

    设计思路 避免热点 便于查询 避免热点数据 (1) Reverse翻转 如手机号全翻转,或者后4位翻转 (2) S...

  • HBase应用 | HBase性能优化

    一、Rowkey设计 1、Rowkey长度原则 Rowkey是一个二进制码流,Rowkey的长度建议设计在10-1...

网友评论

      本文标题:HBase的Rowkey设计的3个原则

      本文链接:https://www.haomeiwen.com/subject/ojnnsktx.html