`
flyingdutchman
  • 浏览: 353231 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《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在Hadoop Ecosystem中的位置

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

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


   
  • 大小: 114.5 KB
  • 大小: 37.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics