hbase初识

  1. hbase是什么
    1. 客户端
    2. zookeeper
    3. master
    4. regionServer
      1. HLog
  2. 数据模型
    1. 逻辑模型
    2. 物理模型

hbase是什么

bsae 是hadoop database,一个分布式的,高容量、可扩展的,面向列的nosql大数据存储数据库。

  • 可靠性:提供wal和replication机制,前者保证写入时数据不会丢失,后者即为副本,集群异常时,数据扔可用
  • 面向列:一行中的数据,如果某一行为null,不会占用存诸空间
  • 扩展性:在不停止现有服务的前提下,可以随时添加或减少节点
  • 高容量:单表可以有百亿行,百万列

#核心功能模块
客户端client、协调服务模块ZooKeeper、主节点Hmaster、Region节点RegionServer

客户端

使用hbase的RPC机制与Hmaster(管理类)和HRegionServer(数据读写类)进行通信

zookeeper

  • 保证集群中只有一个活跃的Hmaster节点
  • 存储所有的region的寻址入口
  • 实时监控regionServer,并将其状态通知给hmaster
  • 存储hbase元数据信息

master

表和region的管理工作

regionServer

负责用户的IO请求,向HDFS文件系统中读写数据

  • 它管理了一系列的HRegion,对应了table中的一个region。
  • HRegion由多个HStore组成,一个HStore对应了表中的一个列簇
  • HStore由两部分组成,MemStore StoreFile
  • MemStore是Stored Memory Buffer ,用户写数时,会先将数据写入其中,满了后会flush形成一个StoreFile
  • StoreFile文件数到阈值后会触发合并操作(多个合并成一个–进行更新和删除操作)–单个文件大小达到某一阈值触发当前region的split操作,生成两个子Region会初Hmaster分配到相应的regionServer上。

    HLog

    每个HRegionServer都有一个,每次用户写入MemStore中时也会写一份数据到这个文件中
  • 定期滚动刷新-删除已持久化到StoreFile中的数据
  • HRegionServer意外终止后,HMaster通过zookeeper感知到
    • 首先将HLog中不同region的数据拆分到相应的region目录下
    • 然后将失效的region重新分配给HRegionServer,这些server加载region时会发现有历史的HLog处理,会将其中的数据放至MemStore,然的flush到storeFiles完成数据恢复。

数据模型

hbase中的数据也是按表区分。表中的每一行由行键和列簇中的列组成,行键类似于id。表中的行是按照ROWKEY行键来排序的。

逻辑模型

hbase表中的数据是三维的,x-列名,y-rowkey z-时间戳。即表中每一个单元格都有不同时间段的值默认展示最近的值

  • 表中的每一行可以有不同的列,创建表时可以不用指定列的类型,即每一行所涉及的列可以不同
  • 表中每一行的行键都是唯一的。
  • 列名:列簇前缀:修饰符

物理模型

一个列簇的数据会被同一个region管理,物理上存放在一起


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 fulndon@qq.com

💰

×

Help us with donation