Hbase rowkey设计原则,热点问题
【摘要】 rowKey的作用
读写数据时通过 RowKey 找到对应的 Region;MemStore 中的数据按 RowKey 字典顺序排序;HFile 中的数据按 RowKey 字典顺序排序。
rowkey设计原则
唯一性:类似于MySQL、Oracle中的主键,用于标示唯一的行;随机性:有效解决hbase热点问题,避免大量客户端只访问一个或几个节点;长度设计:越短越好,8字节...
rowKey的作用
- 读写数据时通过 RowKey 找到对应的 Region;
- MemStore 中的数据按 RowKey 字典顺序排序;
- HFile 中的数据按 RowKey 字典顺序排序。
rowkey设计原则
- 唯一性:类似于MySQL、Oracle中的主键,用于标示唯一的行;
- 随机性:有效解决hbase热点问题,避免大量客户端只访问一个或几个节点;
- 长度设计:越短越好,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)