hbase原理
1.hbase利用hdfs作为其文件存储系统,利用mapreduce来处理数据,利用zookeeper作为协调工具
2.行键(row key),类似于主键,但row key是表自带的
3.列族(column family) ,列(也称作标签/修饰符)的集合,定义表的时候指定的,列是在插入记录的时候动态增加的
hbase表中的数据,每个列族单独一个文件
4.timestamp 是列的一个属性,行和列确定的元素,含有多个数据,每个数据含有时间戳
5.存储的数据都是字节数组型的,
6.数据是按照row key的asc码值进行物理存储,不同于,mysql按照插入的顺序物理存储
物理
1.habase表中的记录,是按照row key拆分成一个个的region
许多region存放在各个region server中,实现并行查询
2.region大小的设置:在源代码中hbase-default.xml,修改hbase.hregion.max.filesize,默认10G
体系结构
1.hbase是主从式结构,HMaster / HRegionServer,允许有多个hmaster存在,但同一时间只有一个hmaster在运作,其他都是备胎
2.启动了HMaster之后,通过zookeeper的master election机制保证总有一个master运行
3.hmaster的作用:为region server 分配region; 负责region server的负载均衡 ;发现失效的region server并重新分配其上的region
4.hRegionServer的作用:维护region,处理这些region的请求; 切分在运行中变得过大的region
其他:
通过row key的开始和结束就可以确定一个region(数据是按照row key 的吗码值大小存的)
..META.表:记录了表的region信息
-ROOT-表:记录了-ROOT-表的region信息
-ROOT-只有一个region