hbase常用细节
2024-09-03 17:30:06 # hbase # 常用细节

hbase常用细节

meta表中数据解析

meta表是唯一一个由master直接管理的元数据表。

表中的rowkey是由表名+,+region起始位置+,+regionID组成的

value是region信息,用来存储regionserver的信息,这里的时间是region被分到regionserver的起始时间

alt text

hbase查看数据的时机

hbase先把数据写入到写缓存中,同时记录在WAL中,然后等待一些刷写磁盘方式,再把写缓存中的数据刷写到磁盘中,但是数据到达内存中的时候就可以读取到数据,不许与等到数据刷写到磁盘中

WAL介绍

WAL也就是hbase的预写日志,hbase的预写日志中是hbase执行任务的任务记录,如果master出现问题,就会让backMaster读取日志继续做

hbase增加backupMaster(高可用)

为了增加hbase的可用性,可以增加多个backupmaster,当master挂掉后可以切换到其他的backupmaster

hbase-site.xml文件中增加

1
2
3
4
<property>
<name>hbase.master.backupMasters</name>
<value>hostname1,hostname2</value>
</property>

然后通过以下命令在每个目标节点启动backupmaster
hbase-daemon.sh start master

hbase的多版本存储

hbase是一个多版本管理的系统

每条数据数据写入的时候都会有一个timestamp就是用于标识数据的不同版本,也是数据写入到hbase的时间戳

alt text

我们在创建表的时候可以指定版本数

1
create 'bigdata:student', {NAME => 'info', VERSIONS => 5}, {NAME => 'msg'}

alt text

我们在查询表的时候可以指定最近的几个版本来查询

1
get 'bigdata:student','1001',{COLUMN => 'info:name',VERSIONS =>6}}

alt text

扫描数据范围

1
scan 'bigdata:student',{STARTROW => '1001',STOPROW => '1002'}

alt text