全部博文(436)
分类: 云计算
2011-10-23 15:24:03
它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。
Hbase在行的方向将表分成了多个Region,每个Region包含了一定范围内的数据。
Region在行的方向将表分成了多个Region,每个表最初只有一个Region,随着表中的记录数不断的增加,当超过某个阈值的时候,Region就会被分割形成两个新的Region。Region是HBase中分布式存储和调度的最小单位。
目录表信息包含两个目录表:-ROOT-和.META..
用户表信息给出了HBase中的表信息及相关的属性。
Region服务器信息给出了所有Region服务器的地址。
用户表页面
通过master页面中用户表信息提供的链接进入用户表页面
Hbase中的表一般的特点:
1.大 含有上亿的列
2.面向列:面向列的存储和权限控制,列独立检索。
3.稀疏:对于空列,并不占用空间,因此表可以设计的很稀疏
下面的这个图是一个对Hadoop系统的一个很综述性的描述
Region按大小分割的,当region不断的增加,Hregion就会等分成两个新的Hregion。Hregion是Hbase中的负载均衡的最小单元。最小单元是表示不同的Hregion分布在不同的Hregion server上。
Region是由多个Store组成的。每个store保存了一个列族的所有数据。 每个store包含了一个memstore 和0~n个storefile组成。
主服务器
HBase每个时刻只有一个HMaster在运行,HMaster协调Region服务器的负载情况。HMaster不会对外提供数据服务。而是由Regin服务器来提供所有的Regions的读写请求,当HRegionServer发生故障的时候,HMaster通过Zookeeper感知到,并处理相应的log文件。HMaster只维护表和元数据,当HMaster节点失效以后,仅会导致所有的数据无法被修改,但是正常的读写是可以的。
元数据表Regions的元数据被存放到.META.表中,随着Region的增加,多个.META.表中的数据也会增大。逐渐变大后回分裂成多个Region.为了定位.META.中的各个Region的位置,把.META.表中的所有Regions的元数据保存在-ROOT-当中,最后由ZooKeeper记录-ROOT-表的位置信息。所以客户端访问用户数据前会访问ZooKeeper中的内容,然后访问-ROOT-来获得.META.表中的信息确定用户数据存放的位置。
.META.表的Regions全部存放在内存当中。
>>Create 'test','data'
创建了一个名为data的列 表的名字为test
在HBase中有一个特点就是当重新向表中写的时候,系统不会报错,而是直接替换相关的内容。
默认的端口号
,里面显示了master的相关的概要型的信息
先运行hadoop环境,然后再运行start-hbase脚本,可以看到相应的信息,以下是hbase启动后的java进程的情况。