1.什么是HBase

1.HBase是面向列式存储的分布式的NoSql数据库;
2.HBase底层是基于HDFS实现的,集群是通过Zookeeper管理的;
3.海量存储,快速访问。

2.什么是RowKey

RowKey与关系型数据库中的主键相似,HBase 使用 RowKey 来唯一标识某行的数据。

3.RowKey的设计原则

  • 业务
    需要满足实时查询需求
  • 散列
    避免热点数据,使数据集中在一个Region上,查询速率低
  • 唯一
    必须保证RowKey的唯一性,由于在HBase中数据存储是Key-Value形式,若向HBase中同一张表插入相同RowKey的数据,则原先存在的数据会被新的数据覆盖
  • 长度
    RowKey的长度不宜过长,不宜超过16个字节,目前操作系统都是64位系统,内存8字节对齐,控制在16字节,8字节的整数倍利用了操作系统的最佳特性,hbase将部分数据加载到内存当中,如果rowkey过长,内存的有效利用率就会下降

3.1 散列原则的RowKey设计方法

  1. 预分区的设计,比如预先设计10个region;
  2. Salt加盐,在 rowkey前面加了一个随机前缀,使其不同于 rowkey之前的开头。前缀类型的分配数量应该与您希望使用数据分布到不同 region的数量一致。在加盐之后, rowkey将基于随机生成的前缀分布在各个 region上,以避免出现热点;
  3. Hash或者Mod,目的都是散列数据,达到负载均衡,Hash和加盐区别在于前缀不是随机的,通过确定Hash,客户端可以重建完整的RowKey,直接通过get获取想要的行
  4. Reverse反转,针对固定长度的Rowkey反转后存储,这样可以使Rowkey中经常改变的部分放在最前面,可以有效的随机rowkey。例如手机号就可以使用反转。

HBase RowKey的设计原则相关推荐

  1. 【Hbase】(十一)详解 HBase 表的设计原则

    文章目录 一.建表高级属性 1. BLOOMFILTER 2. VERSIONS 3. COMPRESSION 4. TTL 5. alter 6. describe/desc 7. disable_ ...

  2. Habse中Rowkey的设计原则——通俗易懂篇

    Hbase的Rowkey设计原则 一. Hbase介绍 HBase -> Hadoop Database,HBase是Apache的Hadoop项目的子项目.HBase不同于一般的关系数据库,它 ...

  3. HBase行键设计原则

     [原理] HBase是一个分布式的.面向列的数据库,它和一般关系型数据库的最大区别是:HBase很适合于存储非结构化的数据,还有就是它基于列的而不是基于行的模式. 既然HBase是采用KeyVa ...

  4. Hbase中RowKey的设计原则和热点问题

    Rowkey设计需要遵循三个原则,即长度原则.散列原则.唯一原则. 1. 长度原则 由于Rowkey是一个二进制码流,可以是任意字符串,最大长度64kb,实际应用中一般为10- 100bytes,以b ...

  5. hbase行健设计原则

    行健的设计问题 行健的热点问题 是由于行健相似.连续且数据量过大操作成单region的数据量过大,进而影响读写效率 行健应该尽量的随机.不要出现连续行健. 常见的行健设计就是,比如手机号码倒置+时间戳 ...

  6. 大数据_MapperReduce_Hbase的优化_RowKey设计原则---Hbase工作笔记0028

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们接着去看一下,这个rowkey的设计原则,这个在面试的时候是个重点. 可以看到我们的这个r ...

  7. 干货 | 大白话彻底搞懂 HBase RowKey 详细设计

    作者 | 且听风吟 责编 | Carol 封图 | CSDN 付费下载于视觉中国 前言 RowKey作为HBase的核心知识点,RowKey设计会影响到数据在HBase中的分布,还会影响我们查询效率, ...

  8. 用大白话彻底搞懂 HBase RowKey 详细设计

    来源 | 且听_风吟 来源 | CSDN 博客,责编 | Carol 封图 | CSDN 付费下载于东方 IC 前言 RowKey作为HBase的核心知识点,RowKey设计会影响到数据在HBase中 ...

  9. 用大白话彻底搞懂 HBase RowKey 详细设计!

    来源 | 且听_风吟 来源 | CSDN 博客,责编 | Carol 封图 | CSDN 付费下载于东方 IC 前言 RowKey作为HBase的核心知识点,RowKey设计会影响到数据在HBase中 ...

最新文章

  1. Intellij IDEA 2020.1 的Plugins 搜索不了插件,连接超时
  2. 高通转战服务器 能否撼动英特尔统治地位
  3. 2019-11-10 等价、相似、合同的一些概念
  4. H.263 H.263+ Payload Type
  5. 密码编码学之AES及其工作模式详解
  6. linux 文件乱码_RedHatlinux系统虚机启动后/etc/fstab中的文件系统未能挂载上
  7. DNS欺骗的艺术 | 域名劫持和网页挂马
  8. bp神经网络预测模型实例,bp神经网络模型的建立
  9. NetSarang旗下网络通讯系列产品v5版本更新合集丨附下载
  10. 心理学上的被动_心理学基本原理之二 : 主动与被动原理
  11. 树莓派python调用摄像头拍照
  12. SPI驱动之南瑞NRSEC3000加密芯片驱动开发总结
  13. 夏普清除小太阳和小人的方法
  14. 计算机solidwork实训报告,SolidWorks实训报告.doc
  15. 一种基于视频帧差异视频卡顿检测方案
  16. MySQL用逗号进行拼接、以逗号进行分割
  17. MySQL数据库初体验
  18. 路由器的工作原理——微云网络
  19. 说一说我们合肥黑马程序员
  20. Qt基于定时器实现简单动图展示(2例)

热门文章

  1. PhotoView——支持图片缩放、平移、旋转的一个优雅的三方组件
  2. Atlas 200dk官方镜像制作
  3. 职场内把一个PPT做成了书页翻卷效果-我的天哪快来看怎么做的吧
  4. WIN7激活显示 系统保留分区未分配驱动器号,怎么分配?求解!!!!!
  5. 小白必看!关于欧盟商标注册须知事项?
  6. java小窗打不开_JAVA做个小窗口时候为什么用SetLayout(null)时候窗口里什么东西都不显示?...
  7. linux中chkconfig命令的作用,Linux下chkconfig命令详解
  8. 3_读取遥感影像信息
  9. TortoiseGit 显示文件状态图标
  10. intellij idea远程开发remote