xml地图|网站地图|网站标签 [设为首页] [加入收藏]

必发88手机在线官网HBase体系架构和集群安装

2019-11-26 16:33栏目:Web前端
TAG:

大家好,今天分享的是HBase体系架构和HBase集群安装。承接上两篇文章《HBase简介》和《HBase数据模型》,点击回顾这2篇文章,有助于更好地理解本文。

简介

  • Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库

  • 利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为其分布式协同服务

  • 主要用来存储非结构化和半结构化的松散数据(列存 NoSQL 数据库),例如:图片

  • hbase是列式数据库,也就是说没有值插入的列是不占存储空间,而mysql这种关系型数据库,插入一条数据就算有些字段没值也会存进一个null,都会占存储空间的

一、HBase体系架构

必发88手机在线官网 1 
 
                                                                                      Hbase体系架构图

Hbase的数据模型

  • ###### Row Key

    1. 决定一行数据
    2. 只能存储64k的字节数据
    3. 下面这个表格其实只能算一行数据,因为同一个Row Key
  • ###### Column Family列族

    1. HBase表中的每个列都归属于某个列族,列族必须作为表模式(schema)定义的一部分预先给出。如 create ‘test’, ‘course’(test表名,course列族名);
    2. 列名以列族作为前缀,每个“列族”都可以有多个列成员(column);如course:math, course:english, 新的列族成员(列)可以随后按需、动态加入;
    3. 权限控制、存储以及调优都是在列族层面进行的;
  • ###### Timestamp时间戳

    1. 在HBase每个cell存储单元对同一份数据有多个版本,根据唯一的时间戳来区分每个版本之间的差异,不同版本的数据按照时间倒序排序,最新的数据版本排在最前面。
    2. 时间戳的类型是 64位整型
    3. 时间戳可以由HBase(在数据写入时自动)赋值,此时时间戳是精确到毫秒的当前系统时间。
    4. 时间戳也可以由客户显式赋值,如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。
  • ###### Cell单元格

    1. 单元格的内容由{row key, column( =<family> +<qualifier>), version} 唯一确定的单元。
Row Key Time Stamp CF1 CF2 CF3
11248112 t6 CF2:q1=val1 CF3:q3=val3
11248112 t3
11248112 t2 CF1:q2=val2

1.1、 Client

• 包含访问HBase的接口并维护cache来加快对HBase的访问

HBase架构

  • ###### Client

    1. 包含访问HBase的接口并维护cache来加快对HBase的访问
  • ###### Zookeeper

    1. 保证任何时候,集群中只有一个master
    2. 存贮所有Region的寻址入口
    3. 实时监控Region server的上线和下线信息。并实时通知Master
    4. 存储HBase的schema和table元数据
  • ###### Master

    1. 为Region server分配region
    2. 负责Region server的负载均衡
    3. 发现失效的Region server并重新分配其上的region
    4. 管理用户对table的增删改操作
  • ###### RegionServer

    1. Region server维护region,处理对这些region的IO请求
    2. Region server负责切分在运行过程中变得过大的region
  • ###### Region

    1. HBase自动把表水平划分成多个区域(region),每个region会保存一个表里面某段连续的数据
    2. 每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region(裂变)
    3. 当table中的行不断增多,就会有越来越多的region。这样一张完整的表被保存在多个Regionserver 上
    4. Region是HBase中分布式存储和负载均衡的最小单元。最小单元就表示不同的HRegion可以分布在不同的 HRegion server上
    5. Region由一个或者多个Store组成,每个store保存一个columns family。
    6. 每个Strore又由一个memStore(缓存)和0至多个StoreFile(数据落地存储)组成。如图:StoreFile以HFile格式保存在HDFS上:
    ![](https://upload-images.jianshu.io/upload_images/10441546-24473103cb48a186.png)

必发88手机在线官网 2

  • ###### HLog(WAL log)

    1. HLog文件就是一个普通的Hadoop Sequence File,Sequence File 的Key是HLogKey对象,HLogKey中记录了写入数据的归属信息,除了table和region名字外,同时还包括 sequence number和timestamp,timestamp是” 写入时间”,sequence number的起始值为0,或者是最近一次存入文件系统中sequence number。
    2. HLog SequeceFile的Value是HBase的KeyValue对象,即对应HFile中的KeyValue
    3. HLog它实际上就是存储操作日志,而且还有这个操作带动的数据,当误操作啥的,数据恢复就很清晰明了
  • ###### Memstore 与 storefile

    1. 一个region由多个store组成,一个store对应一个CF(列族)
    2. store包括位于内存中的memstore和位于磁盘的storefile。写操作先写入memstore,当memstore中的数据达到某个阈值,regionserver会启动flushcache进程写入storefile,每次写入形成单独的一个storefile
    3. 当storefile文件的数量增长到一定阈值后,系统会进行合并(minor(最小规模的合并,可以指定)、major(全表合并,效率非常低) compaction),在合并过程中会进行版本合并和删除工作,形成更大的storefile
    4. 当一个region所有storefile的大小和数量超过一定阈值后,会把当前的region分割为两个,并由master分配到相应的regionserver服务器,实现负载均衡
    5. 客户端检索数据,先在memstore找,找不到再找storefile

必发88手机在线官网 3

1.2、Region

• HBase自动把表水平划分成多个区域(region),每个region会保存一个表里面某段连续的数据;每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region(裂变);
• 当table中的行不断增多,就会有越来越多的region。这样一张完整的表被保存在多个Regionserver 上。  

1.3、Zookeeper

• 保证任何时候,集群中只有一个master;
• 存贮所有Region的寻址入口;
• 实时监控Region server的上线和下线信息,并实时通知Master;
• 存储HBase的schema和table元数据;  

版权声明:本文由必发88手机在线官网发布于Web前端,转载请注明出处:必发88手机在线官网HBase体系架构和集群安装