HBase体系结构是怎么样的

介绍

这篇文章给大家分享的是有关HBase体系结构是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

,,,,, HBase是Apache hadoop集群中常用的非关系型数据,它是一种开源的,分布式的,多版本,面向列存储的数据库。

,,,,它的源码在https://github.com/apache/hbase 上,妥妥的开源啊…

,,,,分布式是因为它的数据最后存储在HDFS上,所以它继承了hadoop分布式的优良传统(不知道能否这么理解)。

,,,多版本就不多介绍了,版本更新快呗…

,,,,面向列的存储是它与传统关系型数据库最大的区别之一,它是根据rowKey, columnfamily, quaifer,时间戳(如果你有多版本的话)得到你最后的价值值. .这个咱们以后再介绍,今天主要想写的是hbase的体系结构。

,,  hbase体系结构是怎么样的

,hbase的服务器体系结构也是主从服务器架构,分为hbase主服务器和HRegionServers。

,HBase主服务器:主服务器,主要负责管理HRegionServers,个人理解:只是关于HRegionServer的决策权都是由它完成的。

<强>具体的功能有:

,,,, 1。用户对表的增,删,改,查。

,,,, 2. HRegionServer的负载均衡,调整HRegion的分布,像一个HRegionServer挂了,主人会将挂了的HRegionServer上面的HRegion重新拿的到,标上未分配,然后再分配一个活的HRegionServer,当然,它也得先询问下这个HRegionServer要不要了. .

,,, 3。在HRegion分裂后,负责新的HRegion的分配。默认的HRegion的大小为64米,当超过这个大小的时候,它会自动分裂成两个,并且这个拆分速度很快,因为它在拆分的时候先会创建两个HRegion,而这两个HRegion先会保存对原HRegion的引用,当这两个新的HRegion数据拆分完成后,再将此引用去掉,并删除原HRegion。现在拆分完了,但是HRegion不是拆分完了就没事干了,它得找个HRegionServer管理啊,所以,又得HBase主服务器分配了,同上~ ~

,,, 4。HRegionServer停机后,负责失效的HRegionServer上的HRegion分配。服务挂了,但是HRegion没挂啊,HRegion可以说是一个存储文件夹,一个服务挂了,找头(hbase主服务器)再找一个呗,然后继续做着保存或查询时被提取数据的工作。

,,,, <强> HRegionServer的构成:

,,,, HRegionServer包含了一个HLog部分和HRegion部分(多个HRegion) .

,, ps:这地方可能有些异议,因为网上一些图片显示的都是HRegion里才包含HLog,网上的资料比较老,所以这里我参考《hadoop实战》中的资料,它的版本是0.92,可能与现在的0.96版本还算比较接近的. .

,,,, HLog部分保存着用户操作hbase的日志(不排除也包含主管理HRegion的操作,明天看一下),用户的操作都会先记录到HLog中,然后再保存到HRegion中只,

,,,,而HRegion其实就是存储的实际数据了。它包含了多个HStore。

,,,HStore:每一个列族都会形成一个HStore,它又由MemStore和多个HFile组成。

,,,MemStore驻留在内存中,当数据保存时,数据会先存储到MemStore中,然后根据用户设定的显式刷写或隐式刷写模式,将数据再保存到HFile中。默认的存储模式是隐式存储。这个以后写客户端api的时候再介绍. .当然,这地方还有个注意的地方,当数据保存到MemStore,最后却没有保存到HFile中时,死机了. . HLog的作用来了,用户操作的指令保存在HLog中,它会将指令执行,再将重新保存到MemStore中,这样就可以完成后面的操作了. .

,,,HFile负责的是实际数据的存储了,它是HBase中的最小单位了。它也可以进行拆分,也就是所谓的分区,让数据更加分散,读取数据的时候更加效率。

,,,,昨天未写完的部分今天补上. .

,,,, HBase的两个主要结构介绍完了,那么咱们现在就开始介绍一下它的存储流程和读取的流程. .

 HBase体系结构是怎么样的

将它作为一个流程图可能不太合适. .不过它里面所需要的东西基本都包含了. .

先说下动物园管理员的作用:

<李>

存储了根表的地址和HMaster的地址。存储的根源地址可以更快的查询到哪张表有数据,提高运算效率。存储HMaster地址是为了确定有哪些HMaster。

<李>

管理着MHaster。当HMaster失效时,它可以找到另一个HMaster,避免HMaster单点故障。

根与.META与区域的结构是一样的,都是以键值对的形式保存数据. .

根里面存储了对应的.META地址和开始结束信息(像1 - 5,说明根里面存储了5个.META的地址信息)。

HBase体系结构是怎么样的