hbase权威

hbase权威

简介

表,行,列,单元格

    • 行序是按照行键的字典序排序的
    • 按照二进制逐字节从左到右依次比对每一行键
    • 与RDBMS主键索引功能相类似
    • 一行由若干列组成,若干列又构成一个列簇
      • 一个列簇的所有列存储在同一个底层文件里,HFile
    • qualifer 由任意字节数组组成
    • 没有数量限制,没有类型和长度限制
  • 单元格
    • 有时间戳,区分不同版本,按照降序排列,优先读取新的

自动分区

  • HBase 负载均衡的基本单元是region
    • region 本质 是 以行键排序的连续存储区间
    • 初始表只有一个region,当大小超过配置限制时,会分裂成2个region
    • 一个region 只能被一个 region server 加载
    • 一个regionServer 可以加载多个 region

底层实现

  • 数据存储文件称为Hfile,存储进过排序的键值映射结构
  • 文件内部由连续的块组成,块的索引信息存储在文件的尾部
  • 当把Hfile打开并加载到内存时,索引信息优先加载到内存,每个块的默认大小64k
  • 每个HFile都有一个索引块,首先通过内存中的块索引二分查找,确定包含给定键的块,然后读取磁盘块,找到实际内容
  • 数据流:
    • ==>commit log ==>memstore ==>flush Hfile ==>清空memstore ==>删除已提交commit log

客户端API

org.apache.hadoop.hbase.client.HTable <== 主要接口,存储,重新,删除操作

  • Htable 创建 代价大,耗时 , 一个线程一个实例
  • HTablePool ,提供复用多个Htable实例

协处理器

  • 将一部分计算移动到数据的存放端,在region服务器上运行代码,执行region级别操作
  • 权限认证
  • 两大类
    • observer
      • 与触发器类似,当特定事件发生时,执行回调函数
    • endpoint
      • 类似存储过程,远程计算能力

架构

B+树

LSM 树

概览

  • hbase主要处理两种文件(有HRegionServer管理):
    • 预写日志(Write-Ahead log)
    • 数据文件
  • hbase启动时,HMaster将所有的region分配到HRegionServer 上
  • HRegionServer 负责打卡Region,创建HRegion实例
    • HRegion打开后,为每个表的HColumnFamily创建一个store实例
    • 每个store包含一个或者多个StoreFile实例
    • StoreFile实例是实际存储文件HFile的封装
    • 每个store有一个对应的MemStore
    • 一个HRegionServer共享一个HLog

HFile -- 存储hbase 数据

逻辑结构 -- https://blog.youkuaiyun.com/qq_29493353/article/details/79205068
  • Scanned block p
    • 表示顺序扫描HFile时所有的数据块将会被读取,包括Leaf Index Block和Bloom Block。
  • Non-scanned block p
    • 表示在HFile顺序扫描的时候数据不会被读取,主要包括Meta Block和Intermediate Level Data Index Blocks两部分。
  • Load-on-open-p
    • 这部分数据在HBase的region server启动时,需要加载到内存中。包括FileInfo、Bloom filter block、data block index和meta block index。
  • Trailer
    • 这部分主要记录了HFile的基本信息、各个部分的偏移值和寻址信息
物理结构
  • HFlie会被切分为多个大小相等的block块,每个block的大小可以在创建表列簇的时候通过参数blocksize=>’65535‘进行指定,默认为64K
  • 大号的Block有利于顺序Scan,小号Block利于随机查询
  • 所有block块都拥有相同的数据结构,HBase将block块抽象为一个统一的HFileBlock
  • HFileBlock -- 包括两部分:BlockHeader和BlockData
    • BlockHeader--存储block元数据
    • BlockData -- 存储具体数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值