hbase教程1 (基本概念)

1 最基本的概念

hbase是一个map

2 数据层面

这里写图片描述

ceil

  • rdbms中,表由行和列组成,由行、列共同确定一个基本的存储单元
  • hbase中,表由row keycolunm family组成,由row keycolumn共同确定的基本存储单元,就是ceil
  • 不同的是,ceil中不仅保存了数据,还保存了数据的版本time stamp

row key

  • 用来检索数据,具体检索方式后面会说
  • 最大为64kb的byte[]
  • hbase中数据按row key的字典顺序存储
  • 每条数据的唯一标识

column family

  • 创表的时候要指定column family,就像rdbms创表时要指定列一样
  • 一张表可以有多个column family,但最好不要过多
  • 一个column fammily下面有多个column

column

  • 可以理解为关系型数据库的列
  • 不同的是column不需要创建表的时候就指定

time stamp

  • 标识每个ceil的版本
  • 默认为当前时间戳
  • 存储为64位int

3 物理层面

store file

  • store file是存储数据的,在hdfs上叫做hfile,可以用命令查看hfile的内容
    ${HBASE_HOME}/bin/hbase hfile -v -f hdfs://10.81.47.41:8020/hbase/default/TEST/1418428042/DSMP/4759508618286845475
  • store file保存在硬盘上面
  • store file中保存表数据(键值对)的基本单位是data block,每个data block不会超过64k(可配置)
  • 可参考http://cloudepr.blogspot.com/2009/09/hfile-block-indexed-file-format-to.html
  • 0~n个store file 和1个 memsotre组成一个 store

memstore

  • memstore保存在内存上
  • memstore达到阈值后,会复制成一个新的store file,然后清空自身
  • 检索数据是先查memstore再查store file
  • 0~n个store file 和1个 memsotre组成一个 store

store

  • 一个store保存一个colum family
  • 1~n个store组成一个region

region

  • 每张表对应一个或多个region,一个region只保存一张表的信息
  • 默认到10g的时候,会等分成2个region
  • 相同的region的数据只会在一个节点上

4 节点角色

master

  • 分配region给 region server
  • region 的负载均衡
  • 维护region的元数据
  • 责任不是太大,负载不是很高

region server

  • 维护master分配的region
  • 将自己维护的region中过大的region切分
  • 处理自己维护的region的io请求

4 系统表

.META.

这里写图片描述
- 保存所有用户表的region的元数据信息
- 该表的rowkey由表名、从表中哪个rowkey开始、时间戳 3个要素拼接而成
- 该表的info列族的server类有记录region的地址从而可以寻址到region
- 该表本身的元数据保存在-ROOT-

-ROOT-

  • 保存 -META-表的region的元数据信息
  • 该表本身保存在哪台服务器的信息保存在zookeeper
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值