Hbase深入学习(一) 什么是hbase

时间:2021-08-13 09:10:00

Hbase深入学习(一) 什么是hbase

一、hbase是什么? 
    首先hbase是一个在Hadoop的HDFS分布式存储系统上介于映射(key/value)的nosql的分布式数据库;它通常会被描述成一个存储稀疏数据的具有分布式、持久化、多维度的经过排序的map,你也一定过一些人把它当做是一个面向列(column family-oriented)的key/value的具有多版本机制的数据库。主要有以下特性: 
   1、提供随机、实时读写查询,由hbase的架构和LSM—Tree数据结构保证; 
   2、高容错,该特性是由HDFS保证; 
   3、分布式和线性扩展; 
   4、面向列和存储松散数据; 
   5、存储的数据可以有多版本; 
   6、表结构简单,数据类型单一(只能保存byte[]值); 
   7、不支持事物这一特性,但具有row的强一致性; 
   8、表的自动切分; 
   9、节点自动故障恢复和选举机制,由ZooKeeper提供该功能; 
   10、可以方便的为MapReduce、hive和pig等继承; 
   11、没有单节点故障问题。 
   hbase是hadoop的整个生态系统上一个重要的组成部分,他弥补了hadoop只能提供高延时的批处理的MapReduce功能,他对app向下提供了存储,向上又提供实时运算和查询;另外又可以使用MapReduce的并行计算模型进行大规模的数据处理,hbase将数据存储和并行计算、实时与批处理几乎完美的结合了起来。

Hbase深入学习(一) 什么是hbase
                    Hbase在Hadoop Ecosystem中的位置

二、hbase集群中的节点分类和通信 
   hbase集群中的节点分为HMasterServer和HRegion Server两种,采用Master-Slave的模式,但是不像hadoop中的集群那样有单点故障的问题。 
   hbase cluster中的节点是通过ZooKeeper集群来通信的,由ZooKeeper来监听hbase集群中的节点的状态。 
   hbase集群可以设置多个HMasterServer节点,但是同一时刻只能有一个处于激活状态提供服务的节点,HMaster节点没有单点故障的问题,当ZooKeeper集群会在一个监听周期内监听到正处于服务状态的HMaster当机后,ZooKeeper集群会通过选举机制来选举出另外一个HMaster节点为整个hbase集群提供服务,ZooKeeper总能保证hbase集群中总有一个HMaster可用;ZooKeeper会监听HRegionServer的状态,并提供故障节点的自动故障恢复功能。 
    由于hbase集群中的节点状态及节点间的通信是有ZooKeeper提供的,故必须单独建立一个 
ZooKeeper集群。

三、hbase集群中的节点的作用 
   hbase主要负责hbase table和HRegion Server的管理工作,包括一下几点: 
   1、管理HRegionServer服务器的负载均衡,调整regions在HRegion Server服务器节点之间的中的分布,以避免热点HRegion服务器; 
   2、在region分裂后,负责新的HRegion的分配; 
   3、当某个HRegionServer当机或停机后,负责失效HRegion服务器上的region的迁移。 
   HRegion Server主要功能为以下几个方面: 
   1、负责响应用户请求(即对HTable的增、删、改查等操作); 
   2、负责HRegionServer中HFile的合并操作,包括Minor和major comparison两种策略; 
   3、HRegion的自动水平分割。 
    Hbase深入学习(一) 什么是hbase