hbase个人总结

概述

分布式非关系型数据库
列存储
可以存储大数据量
数据最后是落盘到hadoop上,廉价,便于横向拓展
存储半结构化数据不浪费空间。

没有主键的概念,行键Rowkey代替主键
数据写入不是覆盖,而是记录一个新的VERSION,默认显示最新VERSION的数据
namespace下有default和hbase两个自带的属性空间,hbase不要动,表默认写入default中。

在这里插入图片描述


集群搭建

自己练习中,搭建完全分布式zookeeper, 启动一台hadoop伪分布式+hbase
sh hbase

zookeeper充当注册中心的作用。HMaster通过zookeeper监控HRegionServer.
在这里插入图片描述


HMaster

负责管理HRegionServer, HRegion由哪个HRegionServer管理。
负责DDL操作(会产生元数据的操作, DML不产生元数据,不进过HMaster. 产生元数据的操作即使对表的操作,create drop disable)

HMaster实时监控zookeeper上/backup-master,判断Backup master是否改动。

先注册的hmaster会变成active, 其他变成backup.

sh hbase-daemon.sh start master
因为要实时监控,一般不超过3个


列存储

写入数据的时候,行存储数据是连续的,只要尾部追加,而列存储需要多少寻址。行比列快.

读取的时候。 整表读与写类似,行快。字段读的时候,列快。

实际生产中,字段读更多。


HRegion

HRegion超过10G,会分裂,变成2个G,分裂出去的HRegion会有新的HRegionServer管理。

在这里插入图片描述


HRegionServer

管理HRegion, 1个HS可以管理1000个。
在这里插入图片描述

  1. WAL:写-日志
    防止数据丢失
    达到1G会滚动,产生新的WAL,旧的变成old WAL,一定时间后被清理
  2. blockCache - 数据块缓存
    本质上是读缓存
    局部性原理:时间局部性,空间局部性。
    LRU:移除最长时间没用的)
  3. memStore - 本质上是写缓存
    设置memStore提高写的效率(因为在内存中)
    冲刷条件:
    > 1.达到128M冲刷
    > 2.WAL滚动时
    > 3. (所有memStore占内存)/(总内存) = 35%, 会冲刷至小于35%
  4. HFile(storeFile)
    落户到hadoop的block中

Compation机制

minjor compact:相邻的合并。小的合成一个大的,大的不参与合并。
major compact: 所有HFile全部合并成1个

布隆过滤器

HFile判断数据是否存在的方法

利用3个哈希函数对一个值映射。映射到0表示一定没有。

不能判断一定有!
在这里插入图片描述


读/写

查找HRegionServer的流程如下:
在这里插入图片描述
老版本中-ROOT-管理.meta,还多一步查找-ROOT-目前被废除。
-ROOT-被废除的原因(点击查看)

写:
请求写入WAL,再写入memstore

读:
先读blockCache,没有再读memStore,
再读HFile(storeFile), 先用行键筛选,再对剩余的文件用布隆过滤器筛选。


补充

删除表之前要先禁用表

disable 'person'
drop 'person'

建表的时候设置最多获取的版本数据

create 'person', {NAME=>'basic', VERSIONS=>3}, {NAME=>'info', VERSIONS=>5}

get 'person', 'p1', {COLUMN=>'basic:age', VERSIONS=>3}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值