注册 留言板
当前位置:首页 > 云计算/大数据 > 其它 > 正文

Hbase 介绍

来源:CSDN   发布时间: 2017-06-19   作者:jxz_007   浏览次数:
摘要: 一、HBase 基础 HBase -- Hadoop Database ,是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。Hbase来源于Google的论...

一、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的体系结构如下图所示。

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



我来说两句
评论内容:
验  证  码:
 
(网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。)
评论列表
已有 0 条评论(查看更多评论)
精彩专题
  • 本月排行
  • 总排行
友情链接:
QQ交流群:①群 155252576 INFOCOOL官方交流群 ②群 469193068 WEB前端技术交流群 ③群 531831996 数据库交流群 ④群 243504572 编程技术交流群
设为首页 - 加入收藏 Copyright @2016 Infocool 版权所有 粤ICP备16000626号