Hadoop之Hbase特点

(一)NoSQL数据库分类

                 

           (二)Hbase整体架构

            

 

 

       ①Client(客户端)

            Hbase系统的入口,使用者直接通过客户端操作Hbase;不限定是原生JAVA接口还是Thrift,Avro,Rest等客户端模式。甚至Mapreduce也可以被看作是一种客户端、

       ②ZooKeeper(协调服务组件)

         ZooKeepr Quorum(队列)复杂管理HBase多HMaster的选举,服务器之间状态同步、

      (三)HMaster:多节点HMaster没有单点问题。在HBase中可以启动多个HMaster,通过Zookeeper的Master选举制度保证总有一个master正常运行并提供服务、其他HMaster作为备选时刻准备提供服务。HMaster主要负责Table和Regiond的管理工作:①管理用户对Table的增、删、改、差操作。

       ②管理RegiondServerd的负载均衡。

        ③在Regiond分裂后,负责新Regiond的分配

         ④在RegiondServer死机之后,负责失效RegiondServerd上的Regiond迁移。

  

       HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。
      HRegisonServer内部管理了一系列HRegison。HRegion由多个HStore组成,每个HStore对应了Table中的一个Column Family的存储。
      HStore存储是HBase存储的核心,由两部分组成:MemStore和StoreFile。MemStore是Sorted Memory Buffer,用户写入的数据首先会放入MemStore中,当MemStore满了以后会缓冲(flush)成一个StoreFile(底层实现是HFile),当StoreFile文件数量增长到一定阀值,会出发Compact操作,将多个StoreFile合并成一个StoreFile,在合并过程中会进行版本合并和数据删除。

       SoreFile在触发Compact操作后,会逐步形成越来越大的StoreFile,当单个StoreFile大小超过一定阀值后,会触发Split操作,同时把当前Region分裂成2个Region,父Region会下线,新分裂的2个子Region会被HMaster分配到响应的HRegionServer上,使得原先一个Region的压力得以流到2个Region上。每个HRegionServer中都有一个Hlog对象,Hlog是一个实现Write Ahead Log的类,在每次用户操作写入MemStore的同时,也会写一份数据到Hlog文件中,Hlog文件定期会滚动出新,并删除旧的文件(已持久化到StoreFile中的数据)。在HRegionServer意外终止后,HMaster会通过ZooKeeper感知到,首先处理遗留的HLog文件,将其中不同Region的Log数据进行拆分,分别放到相应新Region的目录下,领取到这些Region的HRegionServer在加载Region的过程中,会发现有历史HLog中的数据放到MemStore中,然后缓冲(flush)到StoreFiles,完成数据恢复。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值