大数据 HBase 简介、原理、使用场景、闭坑要点全面总结

HBase 是什么
  • HBase 是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。
HBase 如何存储
  • 使用 Hadoop HDFS 作为其文件存储系统。

  • 存储结构:HMaster、HRegionSever、HRegion、HLog、Store、MemStore、StoreFile、HFile。

  • Table 在行的方向上分割为多个 HRegion(分散在不同的 RegionServer),每个 HRegion 由多个 Store 构成,每个 Store 由一个 MemStore 和 0或多个 StoreFile 组成,每个 Store 保存一个 Columns Family(列族),StoreFile 以 HFile 格式存储在 HDFS 中。

HBase 适用场景
  • 需要实时读写、随机访问超大规模数据集时,可以使用 HBase。

  • 需要横向、纵向伸缩扩展的数据存储,伸缩能力强。

HBase 如何查询
  • 通过单个 rowkey 访问。
  • 通过 rowkey 的范围。
  • 全表扫描。

注:通过 rowkey 访问效率高。

Rowkey 如何设计
  • Rowkey 行键可以任意字符串(最大长度64KB,实际应用中长度一般为10-100bytes),在 HBase 内部 RowKey 保存为字节数组。
  • Rowkey 设计规则:唯一、排序、散列(Region 热点问题,Rowkey 开头不能相同)。

注:Rowkey 设计时要注意避免数据热点,对于 Rowkey 前几位相似度高的,考虑逆序,保证前几位分布平均。

  • Rowkey 长度规则:越短越好,不建议超过100字节,列族名、列名等都尽量使用短名字。

注:Rowkey 长度建议为8的倍数,满足电脑内存对齐特性,效率更高。

HBase 行、列族、列名
  • 行的一次读写是原子操作(不论一次读写多少列)。
  • 列簇是表的 schema 的一部分(而列不是),必须在使用表之前定义,HBase 表中的每个列,都归属于某个列簇。

(1)访问控制,磁盘和内存的使用统计都是在列簇层面进行的;
(2)列簇上的控制权限能管理不同类型的应用;允许一些应用可以添加新的基本,一些应用可以读取基本数据并创建继承的列簇、一些应用则只允许浏览数据。

  • 列名都以列簇作为前缀。
HBase时间戳
  • HBase 中通过 row 和 columns 确定的为一个存储单元称为 cell。每个 cell 都保存着同一份数据的多个版本,版本通过时间戳来索引。
HBase使用注意事项
  • 如果只有一个 family,每次都会读当前 rowkey 的所有数据,网络和 IO 会有损失。
  • Hbase 官方建议不超过2~3个 column family。

(1)最优设计:将所有相关性很强的 key-value 放在同一个列簇下;
(2)既能做到查询效率最高,也能保持尽可能少的访问不同的磁盘文件;
(3)以用户信息为例,将必须的基本信息放一个列族,附加的额外信息放另一列族。

  • 提前预分区,每一个 region 维护着 startRow 与 endRowKey,如果加入的数据符合某个 region 维护的 rowKey 范围,则该数据交给这个 region 维护。

(1)依照此原理,可将数据所要投放的分区提前大致规划好,以提高HBase性能。

  • 建表高级属性

(1)BLOOMFILTER:对列族启用,节省读磁盘过程,有助于降低读取延迟;
(2)VERSIONS:设置老版本保留数量,设为1能节约 2/3 的空间;
(3)COMPRESSION:指定列族是否采用压缩,及采用的压缩算法;
(4)TTL:该列族数据的存活时间,超时不再显示,待下次 major compact 时彻底删除数据,默认2147483647,约68年 。
注:触发 major compaction 的可能条件有:major_compact 命令、majorCompact() API、region server自动运行,此操作用于处理小文件过多。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值