数据库 OLTP引擎
HBase

HBase是一个分布式的、面向列的开源数据库

商务合作
5
(1)

简介

HBase是一个分布式的、面向列的开源数据库,它是一个适合于非结构化数据存储的数据库,它在Hadoop之上提供了类似于Bigtable的能力,同时又是一个高可靠性、高性能、面向列、可伸缩分布式存储系统,同时HBase技术可在廉价PC Server上搭建起大规模结构化存储集群,性价比非常高。

适用场景

对象存储:不少的头条类、新闻类的新闻、网页、图片存储在HBase之中,一些病毒公司的病毒库也是存储在HBase之中。

时序数据:HBase之上有OpenTSDB模块,可以满足时序类场景的需求。

时空数据:不少车联网企业,数据都是存在HBase之中。

消息/订单:Facebook用HBase存储在线消息,每天数据量近百亿,每月数据量250 ~ 300T, HBase读写比基本在1:1,吞吐量150w qps。

Feeds流:典型的应用如微信朋友圈。

基础概念

命名空间:类比MySql中数据库库名。

表名:类比MySql中表名。

列族:一组列的集合为列族。列族下的列可以N个。

列名称:存在列族下的单个列,列族下的名称。

RowKey:HBase存储采用 key-value方式,Key即为RowKey,所有的修改查询等操作只能基于RowKey,必须唯一。

架构

HBase由三种类型的服务器以主从模式构成。

Region Server:负责数据的读写服务,用户通过与Region Server交互来实现对数据的访问。每个Region服务器中包含最多1000个Region,每个Region里面包含了StartKey到EndKey的一个区间数据。

HBase HMaster:分组分配Region和操作DDL,在集群处于数据恢复或者动态调整时,监控所有Region Server的状态。

ZooKeeper:负责维护集群的状态(某台服务器是否在线,服务器之间数据的同步操作及HMaster的选举等)。

HBase

HBase主要特点

  • HBase为分布式列式数据库,可以横向进行扩展,解决系统存储数据超2000w的问题。
  • HBase为列式存储数据库,一个列族下可以支持成百上千列,解决系统对非结构化数据存储与单个数据列更新等问题。
  • HBase具备毫秒级读写,随机读写,实时读写,无线存储拓展,数据高可用,多级缓存,服务不中断,主备自动切换,异地双活等特性,解决系统高可用等问题。
  • HBase存储自带多种压缩算法,降低数据存储量。
  • HBase数据支持多版本,对修改的数据可以支持多个版本数据。
  • HBase自带数据有效期功能,对于冷数据可以定期删除。

HBase优点

  • 列可以动态增加,并且列为空就不存储数据,节省存储空间。
  • HBase自动切分数据,使得数据存储自动具有水平扩展能力。
  • HBase可以提供高并发读写操作的支持。

HBase缺点

  • 不能支持条件查询,只支持按照RowKey来查询。
  • 不适合于大范围扫描查询。
  • 不支持事务。

HBase注意事项

1.数据热点问题以及解决方法

HBase创建表时会使用多个Region,如果使用不正确会导致所有数据写入同一个Region服务器下,造成数据热点问题,解决数据热点问题一共需要注意两个方面。

第一方面是建表时(预分区建表),要根据自己的RowKey特性选择正确的分区规则。

第二方面是RowKey的设计,需要保证唯一的同时尽量散列。可以采用雪花算法生成唯一ID,对唯一ID高位进行MD5转16进制加上反转后的唯一ID作为RowKey,可以将数据均匀的分散到多个Region中,避免数据热点问题。

2.HBase批量获取数据大小建议

对HBase进行批量查询时,将批量数据控制到100KB以内,超过后性能下降非常明显。

3.单行数据大小限制

单行不建议超过400KB,KV存储系统非对象存储系统。如果Value过大会导致处理性能直线下降。

4.Scan使用

Scan属于不稳定接口,如扫描范围过大或设置不准会导致性能下降,使用时必须设置startKey与endKey,同时start与end之间不要超过100条数据。

5.HBase连接事项

HBase每次连接耗时较高,构建Connect对象时,需要在程序启动时进行,避免使用时创建。

相关文章

有赞 HBase 技术实践:读流程解析与优化

网易基于 HBase 的最佳实践

58HBase平台实践和应用-平台建设篇

有态度的HBase

这个大数据组件是否好用呢?

点击星号为它评分!

平均评分 5 / 5. 投票数: 1

到目前为止还没有投票!成为第一位评论此组件。

相关导航

暂无评论

暂无评论...