Hbase rowkey设计原则,热点问题

2022-09-26 18:57:41 浏览数 (2)

rowKey的作用

  1. 读写数据时通过 RowKey 找到对应的 Region;
  2. MemStore 中的数据按 RowKey 字典顺序排序;
  3. HFile 中的数据按 RowKey 字典顺序排序。

rowkey设计原则

  1. 唯一性:类似于MySQL、Oracle中的主键,用于标示唯一的行;
  2. 随机性:有效解决hbase热点问题,避免大量客户端只访问一个或几个节点;
  3. 长度设计:越短越好,8字节的整数倍利用了操作系统的最佳特性。如太长会影响HFile的存储效率;且MemStore将缓存部分数据到内存,内存的有效利用率会降低,检索效率低。

解决hbase热点问题

  即增加rowkey的随机性,常见一下三种做法:

  • 反转:如手机号或者时间等,开始位相似性较高,手机号第一位都是1,结束位有一定随机性,做rowkey时反转即可
  • 加盐:在rowkey前加随机数
  • hash处理:建议使用MD5

你是砍柴的,他是放羊的,你和他聊了一天,你们决定合作一起开个烤全羊的店,你的柴烤出来的羊很美味,他的羊纯天然的,几年后你们公司上市了...

0 人点赞