码迷,mamicode.com
首页 > 其他好文 > 详细

hbase原理

时间:2020-01-25 15:31:49      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:字典   google   top   大数   导致   继承   重构   sql   引擎   

Hbase:
基于hdfs的数据库,来源于google的一篇论文bigtable.基于HDFS实现高可用、分布式、列式存储、核心包括:
-Rowkey: 可以简单理解成mysql中的主键
-列簇,列
-时间戳
按照Rowkey字典顺序存储,基于rowkey的高效检索,同时继承hdfs的高吞吐能力。
Hbase用rowkey快速访问数据,所以rowkey的设计是hbase性能提升的关键
Hbase数据访问方式:
-通过get方式,指定rowkey获得唯一一条记录
-通过scan方式,设置startRow和stopROW参数进行范围匹配。
-全表扫描。

hbase rowkey设计原则:
-rowkey长度
rowkey快速定位过程中,rowkey数据是在内存中的,所以rowkey过长时,如果数据量又很大,会导致内存占用过多,检索变慢。
hbase本身对rowkey限制64Kb,但建议越短越好,最好16字节以内;另外colname(列簇名)对设计也尽量简单。
-rowkey唯一性
rowkey需要能够唯一标识一条记录,类似RDBMS中的主键
-rowkey散列
由于数据是按rowkey的字典顺序存储的,若rokey顺序性较强,会减弱hbase分布
式存储的特点,在大数据量时会导致
部分region过载,严重时会造成节点失
联,影响其它数据的访问。
散列的方案:
1/ hash:可以让数据均衡分布,可重构,可以使用get等方式快速访问数据。 比如你设置的rowkey组合完了做hash
2/ 加随机数:数据均衡分布,不可重构,失去get快速定位数据等能力
3/ 反转:普遍使用的三列方法,尤其是对于时间序列,手机号类似的rowkey

二级索引(待看)

设计时hbase的存储空间是需要考虑的:
比如2个G的mysql数据,由于hdfs本身机制,就成6个G。
而hbase还有副本,6个副本的话,就36G。

写入慢:
1/ 检查hdfs,检查rowkey的长度等。

优势:
上亿条数据的查询很快的

使用场景:
用户画像的场景:可以用hbase也可以用ES
ES除了做ELK,日常业务状态监控,业务日志的采集分析外。
也可以做为olap的引擎。

hbase原理

标签:字典   google   top   大数   导致   继承   重构   sql   引擎   

原文地址:https://www.cnblogs.com/hongfeng2019/p/12233063.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!