大数据Hbase ------,
Hbase的物理模型,意思就是在hbase中数据是如何存储的,以及存储原理,以及位置。
在hbase中最小的存储单元叫做cell: rowkey+列簇+时间戳+value 这样可以唯一确定一个单元格的值 ,在hbase的物理模型中,region是按照rowkey在行的方向上可以划分多个region ,并且都是按照字典序进行排序的
regionk可以理解为分区的概念,一个region 里面存在一个列簇+value
在hbase的存储结构中:
Hdfs的目录结构: /hbase/data/hadooinfo/2aa0d3fc88bce3fd726ef25372a53a5b/f1(store)/storefile (Hfile)
存储在HDFS之上
Hbase的存储过程:
在Hbase中存在如下的组件:
预写日志: WAL :write ahead log 所有的客户端的命令都会记录在这个日志里面,它的作用是为了防止在进行数据写入的时候,服务器突然宕机导致数据的丢失,这样可以从hlog进行恢复
每次用户写入数据时候,同时写入数据到hLog 和memStore , 并且在regionserver上只有一个hlog
当memstore中的数据达到一定阈值的时候,会进行一个叫做flush 操作,就会把memstore中的数据写道storeFile文件中,该文件是保存在HDFS之上的
当stroeFile 文件数量增长到一定的值后,会进行合并操作,会形成更发的storeFile, 在合并过程中存在三种合并机制(minor ,major ,compaction)
在hbase上对于文件的删除,也是给要删除的数据打上删除标记,在合并的过程中进行删除 ,例如版本号比较号老的数据,在hbase上会存在保存时间,当达到一定时间之后,版本老的数据会在合并的过程被删除掉
当在region上的文件过大达到一定大小的时候,会进行等分,分裂成两个region 其中一个会有master 进行分配到其他regionserver 进行负载均衡