HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
与FUJITSU Cliq等商用大数据产品不同,HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。
一、hbase的特性
1、hbase数据的终持久化存储是基于hsfs文件系统,存储容量几乎无限,可以随时在线扩容
2、hbase的数据增删改查功能模块是分布式系统
3、nosql数据库,表结构
二、HBase的存储
HBase中的所有数据文件都存储在Hadoop HDFS文件系统上
1. HFile, HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile
2. HLog File,HBase中WAL(Write Ahead Log) 的存储格式,物理上是Hadoop的Sequence File。
三、HBase工作机制
1、hbase工作机制示意图
2、hbase工作机制详细解析
a. hbase的整体工作机制是接受客户端发来的请求命令,从hdfs中读取表文件信息返回给客户端;
b. 每个hbase服务器负责表文件中对应region区域,hdfs上表文件的存储也是分为每个region单独存储,每个region中又分为多个列族存储;
c. hbase集群中有两种角色,regionserver和master,
regionserver负责响应客户端请求,读取表文件;
master负责监控regionserver的状态,以便及时处理掉线的regionserver,保证hbase集群正常运行;当一个region挂掉时,master会及时监控到,这里利用了zookeeper管理regionserver状态信息
当一个master挂掉时,不会影响客户端查数据,但如果此时regionserver挂掉,master又不能及时监控到,便会影响数据查询;解决方法就是再设置一台master,一台active状态,一台standby状态用作备用,当active的master挂掉,standby的master将会变为active状态,监控regionserver。
d. master和zookeeper就组成了高可用。
学习大数据开发,可以参考千锋提供的大数据学习路线,该学习路线提供完整的大数据开发知识体系,内容包含Linux&&Hadoop生态体系、大数据计算框架体系、云计算体系、机器学习&&深度学习。根据千锋提供的大数据学习路线图可以让你对学习大数据需要掌握的知识有个清晰的了解,并快速入门大数据开发。