Hbase学习

hbase架构:

  1. Zookeeper
    Master与RegionServers启动时向Zookeeper注册,保证任何时候集群只有一个Master,监控Region server的上下线信息,并实时通知给master。存储HBase的schema和table元数据。

  2. HBase Master: 一个主服务器
    集群只有一个master,维护Region服务器列表,分配Reign,负载均衡

  3. HRegion Servers

    • 作用:存储和维护分配给自己的Reign,处理来自客户端的读写
    • region:table在行方向上的切分。分布式存储和负载均衡的最小单元。随着数据不断插入表,region不断增大,当region的某个列组达到一个阈值时会分成两个新region.<表名,stratRowkey,创建时间>
    • store:一个region由一个或多个store组成。一个列组建立一个store,将会一起访问的数据放在一个store里
    • memstore:存储于内存中,保存修改的数据key-value,当memstore大小达到一个阈值,memstore被flush到文件中。
    • storefile:memstore写到文件中即为storefile
    • 若一个region由多个store组成,则每个store由1个memstore和0或多个storefile组成
  4. HBase client
    包含访问HBase的接口,维护cache来加快对HBase的访问

特点:
1. 面向列:面向列(组)的存储和权限控制,列(组)独立检索
2. 稀疏:为Null的列cell不占用存储空间,因此表可以设计的非常稀疏
3. 无模式:每一个行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有不同的列
4. 数据多版本:每个单元中的数据可以有多个版本,默认根据单元格插入时的时间戳
5. 类型一定:数据均为字符串,以byte字节数组存储

  1. Row Key访问方式:

    • 单个Row key
    • Row Key 的range全表扫描
  2. 列组

    • 列组是表的schema的一部分,列组需要提前定义
    • 访问控制、磁盘和内存的使用都是在列组层面进行的
posted @ 2019-11-27 15:26  飞飞翔滴少年  阅读(154)  评论(0编辑  收藏  举报