Hbase 介绍

一、HBase 基础

HBase -- Hadoop Database ,是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。Hbase来源于Google的论文“Bigtable: 一个结构化数据的分布式存储系统”。HBase实际上是Hadoop的一个数据库系统,它的主要作用和传统数据库系统一样存储数据和检索数据。

传统关系型数据库的一些问题:
1) 传统的RDBMS关系型数据库存储一定量数据时没有问题,但是在存储海量数据(PB、TB级别),传统数据库无法支撑。
2) 性能差(数据量很大时)。
3) 面向行的,架构不够弹性,不能任意增加列。

Hbase和传统数据库的表结构的差异(Hbase不同于传统RDBMS,是面向列的):

HBase仅能通过行键(row key)和行键序列来检索数据,仅支持单行事务(可通过hive支持来实现多表联合等复杂操作)。主要用来存储非结构化和半结构化的松散数据。与hadoop一样,HBase目标主要依靠横向扩展,通过不断增加商用服务器,来增加计算和存储能力。HBase表一般有这样的特点:

l  大:一个表可以有上亿行,上百万列

l  面向列:面向列(族)的存储和权限控制,列(族)独立检索。

l  稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。

1.1 hbase 体系结构

          HBase的服务器体系结构遵循简单的主从服务器架构。它由HRegion Server和HMaster组成,HMaster负责管理所有的HRegion Server,HBase中所有的服务器都通过ZooKeeper来协调。HBase的体系结构如下图所示。

1.1.1 客户端(Client)

         Client用RPC与HMaster和HRegionServer通信。对于管理类操作,Client与HMaster通信,对于数据读写类操作,与HRegionServer通信。Client访问HBase上数据的过程并不需要HMaster参与(寻址访问Zookeeper和HRegion Server,数据读写访问HRegionServer),HMaster仅仅维护表和HRegion的元数据信息,负载很低。

        客户端的作用:

        1.整个HBase集群的访问入口;
        2.使用HBase RPC机制与HMaster 和 HRegionServer通信。
        3.与HMaser通信进行管理类操作。
        4.与HRegionServer通信进行数据读写类操作。

1.1.2 Zookeeper作用

       1.实现HMaster的HA,保证集群中只有一个HMaster。
       2.保存root region的位置(meta表),Region的寻址入口:客户端在访问表时,需要找到表的每个region对应的RegionServer(管理Region的角色)。Root(新版本是meta)表存储了Region的分布情况以及每个Region的详细信息。
      3.实时监控RegionServer的上下线信息,并及时通知Master。
      4.存储HBase的schema和table元数据(有哪些表、每个表有哪些列族)。

1..1.3  HMaster作用和特点

      1.HMaster作用:
         (1). HMaster负责Table和Region的管理工作,为RegionServer分配Region。
         (2). 管理Region Server的负载均衡(为每一个Region Server分配多少Region),调整Region分布。
         (3). 当某一个Region Server停机下线后,负责失效Region Server上的Region的迁移。
         (4). 监听zookeeper,基于zookeeper来得知Region Server上下线。
         (5). 监听zookeeper,基于zookeeper来保证Master的HA

      2.HMaster的特点:
         (1)HMaster没有单点故障问题(SPOF:Single Point Of Failure)。HBase可以启动多个HMaster,Zookeeper保证只有一个HMaster运行。
启动backup master节点方法:在conf下修改配置文件backup-masters,通过hbase-daemons.sh脚本启动backup master。

     $bin/hbase-daemons.sh start master-backup

        (2)不参与客户端数据读写
        (3)HMaster的负载很低(在同一个主机上可以和NN、SNN等服务共同运行)。

1.1.4 Region Server的作用

  1. 维护Region(HMaster分配的),响应客户端的IO访问请求(读写),向HDFS读写数据。
  2. 负责处理region的 flush、compact、split 几个过程。
  3. 维护region的cache

1.2 Hbase 表结构逻辑视图





参考文章:http://www.jianshu.com/p/d6ec3301cba3

                    http://www.jianshu.com/p/e4e67dfaafd8

                    http://www.jianshu.com/p/479bc6308381

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值