Hbase rowkey设计原则,热点问题

举报
不吃西红柿 发表于 2021/07/14 22:43:24 2021/07/14
【摘要】 rowKey的作用 读写数据时通过 RowKey 找到对应的 Region;MemStore 中的数据按 RowKey 字典顺序排序;HFile 中的数据按 RowKey 字典顺序排序。 rowkey设计原则 唯一性:类似于MySQL、Oracle中的主键,用于标示唯一的行;随机性:有效解决hbase热点问题,避免大量客户端只访问一个或几个节点;长度设计:越短越好,8字节...

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

 


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

 

文章来源: notomato.blog.csdn.net,作者:kissme丶,版权归原作者所有,如需转载,请联系作者。

原文链接:notomato.blog.csdn.net/article/details/89404016

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。