HBase表的RowKey设计、热点和二级索引
admin
2024-04-02 04:34:55
0

1、HBase表的RowKey设计

RowKey的基本介绍

ASCII码字典顺序:

  • 012,0,123,234,3.
  • 0,3,012,123,234
  • 0,012,123,234,3

字典序的排序规则:

  • 先比较第一个字节,如果相同,然后比对第二个字节,以此类推,
  • 如果到第X个字节,其中一个已经超出了rowkey的长度,短rowkey排在前面。

1.1、RowKey长度原则

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

建议越短越好,不要超过16个字节:设计过长会降低memstore内存的利用率和HFile存储数据的效率

1.2、RowKey散列原则

        建议将rowkey的高位作为散列字段,这样将提高数据均衡分布在每个RegionServer,以实现负载均衡的几率。

1.3、RowKey唯一原则

必须在设计上保证其唯一性,访问hbase table中的行:有3种方式:

  • 单个rowkey
  • rowkey 的range
  • 全表扫描(一定要避免全表扫描)

实现方式:

  1. org.apache.hadoop.hbase.client.Get
  2. scan方法: org.apache.hadoop.hbase.client.Scan

scan使用的时候注意:setStartRow,setEndRow 限定范围, 范围越小,性能越高。

1.4、RowKey排序原则

HBase的Rowkey是按照ASCII有序设计的,我们在设计Rowkey时要充分利用这点。

2、HBase表的热点

2.1、什么是热点

        检索habse的记录首先要通过row key来定位数据行。当大量的client访问hbase集群的一个或少数几个节点,造成少数region server的读/写请求过多、负载过大,而其他region server负载却很小,就造成了“热点”现象

2.2、热点的解决方案

  • 预分区

        预分区的目的让表的数据可以均衡的分散在集群中,而不是默认只有一个region分布在集群的一个节点上。

  • 加盐

        这里所说的加盐不是密码学中的加盐,而是在rowkey的前面增加随机数,具体就是给rowkey分配一个随机前缀以使得它和之前的rowkey的开头不同。

    4个region,[,a),[a,b),[b,c),[c,]
    原始数据:abc1,abc2,abc3.
    加盐后的rowkey:a-abc1,b-abc2,c-abc3
               abc1,a
               abc2,b

  • 哈希

        哈希会使同一行永远用一个前缀加盐。哈希也可以使负载分散到整个集群,但是读却是可以预测的。使用确定的哈希可以让客户端重构完整的rowkey,可以使用get操作准确获取某一个行数据。

    原始数据: abc1,abc2,abc3
    哈希:
            md5(abc1)=92231b....., 9223-abc1
            md5(abc2) =32a131122...., 32a1-abc2
            md5(abc3) = 452b1...., 452b-abc3

  • 反转

        反转固定长度或者数字格式的rowkey。这样可以使得rowkey中经常改变的部分(最没有意义的部分)放在前面。这样可以有效的随机rowkey,但是牺牲了rowkey的有序性。

    15X,13X,

3、HBase的二级索引

HBase表按照rowkey查询性能是最高的。rowkey就相当于hbase表的一级索引!!

        为了HBase的数据查询更高效、适应更多的场景,诸如使用非rowkey字段检索也能做到秒级响应,或者支持各个字段进行模糊查询和多字段组合查询等, 因此需要在HBase上面构建二级索引, 以满足现实中更复杂多样的业务需求。

hbase的二级索引其本质就是建立hbase表中列与行键之间的映射关系。

常见的二级索引我们一般可以借助各种其他的方式来实现,例如Phoenix或者solr或者ES等

相关内容

热门资讯

上节育环后需要注意什么 一、休息与活动 上节育环后要适当休息,避免剧烈运动和重体力劳动,一般建议休息1 - 2天。因为过早进...
挖矿收益不足3美分!比特币暴跌... 来源:环球市场播报 TMG Core 展台的液体浸没式冷却矿槽中的加密货币矿机。 罗森布拉特证券公...
众机构唱多三星电子:存储巨头冲... 财联社2月25日讯(编辑 史正丞)随着三星电子周二收涨3.6%,迈上每股20万韩元的历史新高,分析师...
增值税发票数据显示:春节假期消... 新华社北京2月24日电(记者刘开雄)记者2月24日从国家税务总局获悉,增值税发票数据显示,2026年...
从“向外求索”到“向内安顿”的... 从“向外求索”到“向内安顿”的消费觉醒 当商务宴席上的茅台与书房中静静摆放的谦夫子养生露酒同时出现在...
千寻智能完成近20亿元融资 北京商报讯(记者 陶凤 王天逸)2月24日,具身智能头部企业千寻智能宣布,近日连续完成两轮融资,金额...
原创 银... 最近不少人发现,家附近的银行网点悄悄关门了,有的贴出公告终止营业,有的直接撤柜清空,就连工商银行、建...
美联储理事库克称央行可能无法应... 来源:环球市场播报 美联储理事丽莎·库克警告称,美国央行可能无法应对因采用人工智能而导致的失业率上升...
焦点访谈|这个春节假期,消费市... 来源:滚动播报 (来源:千龙网) 金马昂首,新春纳福。刚刚过去的丙午年春节假期,消费市场购销两旺持续...
亚朵节后价格“跳水”超70% 春节过后,部分热门小城的亚朵酒店房价上演“过山车”行情,房价节前飙升,节后迅速跳水,巨大的价格波动引...
原创 金... 你绝对想不到,同样一克999足金,在深圳水贝批发市场只要1334元,走进周大福门店却变成1545元,...
德兰明海冲击港交所!递表前大手... 又一家储能企业“叩响”了港交所大门。近期,港交所官网显示,中小型用户侧储能企业深圳市德兰明海新能源股...
绿茶集团、猫眼娱乐发布正面盈利... |2026年2月25日 星期三| NO.1绿茶集团发布正面盈利预告 2月24日港股收市后,绿茶集团(...
安宁市的历史文化及名人有哪些 安宁市,这座坐落在彩云之南的城市,宛如一颗璀璨明珠,散发着迷人的历史文化魅力。在这里,岁月留下了深深...
中国央行连续12个月加量续作M... 来源:中国新闻网 中新社北京2月24日电 (陶思阅)中国央行24日发布中期借贷便利(MLF)招标公告...
不是15%?特朗普10%全球关... 据美国海关及边境保卫局(CBP)发布消息,特朗普政府将实施的新全球关税为10%。 第一财经收到的CB...
2026年春节出游人次、消费金... 2026年春节,为期9天的超长假期点燃了全国消费热情,多项核心数据创下历史纪录。 经文化和旅游部数据...
美国联邦存款保险公司(FDIC... 美国联邦存款保险公司(FDIC):美国银行业存款季环比下滑2%。
2026春节AI大战深度复盘:... 主编温静导读:2026年春节,元宝、千问、豆包三大巨头以红包、免单为杠杆,发动了一场规模空前的用户争...