HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,适用于结构化的存储,底层依赖于Hadoop的HDFS,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。因此HBase被广泛使用在大数据存储的解决方案中。
为何使用HBaseHBase的优点:-列可以动态增加,并且列为空就不存储数据,节省存储空间。-Hbase自动切分数据,使得数据存储自动具有水平scalability。-Hbase可以提供高并发读写操作的支持。
HBase的缺点:-不能支持条件查询,只支持按照Rowkey来查询。-HBase并不适合传统的事物处理程序或关联分析,不支持复杂查询,一定程度上限制了它的使用,但是用它做数据存储的优势也同样非常明显。因为HBase存储的是松散的数据,所以如果你的应用程序中,数据表每一行的结构是有差别的,那么可以考虑使用HBase。
图1
图2我们在做卖家操作日志初期,将所有的操作日志存放在ES中,操作日志的数据量是非常大的,但尴尬的是我们当时所能申请到的ES资源有限。当把大量的数据存储到有限的ES集群中时便导致了性能的下降。在这种情况下,我们选择了只在ES集群中存储最近三个月的数据,对其提供灵活的查询,而长期的数据存储使用HBase来进行。这样的话我们便可以实现对近期操作灵活展现,对长期数据也有精确备份。
要使用HBase我们首先要了解HBase的数据结构:HBase会存储系列的行记录,行记录有三个基本类型的定义:RowKey、TimeStamp、ColumnFamily。RowKey与NoSQL数据库一样,RowKey是用来检索记录的主键。访问HBasetable中的行,只有三种方式:通过单个RowKey访问。通过RowKey的range全表扫描。
MasterHBaseMaster用于协调多个RegionServer,侦测各个RegionServer之间的状态,并平衡RegionServer之间的负载。HBaseMaster还有一个职责就是负责分配Region给RegionServer。HBase允许多个Master节点共存,但是这需要Zookeeper的帮助。
领取专属 10元无门槛券
私享最新 技术干货